[One (M7) Themes and Apps] agentdr8:
Detailed iconpack information

XSBM Iconpack detailed information

Iconpacks have been moved to its own thread here: [THEME] XSBM iconpacks

The iconpack structure is a simple ZIP file with a specific set of subfolders, and a hidden identifier text file. Below is the file list of the default_iconpack.zip, separated by section/subfolder. If you are building a pack or replacing images within an existing pack, remember to maintain the exact filenames as shown, case-sensitive (i.e. all lowercase):

Pack identifier

.xsbmpack

Notes: The .xsbmpack is a plain text file that can contain the following fields:

author: name/nick/ID of pack creator or icon creator

note: a short description about the pack (what kind of battery icons, etc). This should be on a single line.

Both fields should be terminated by a single line-feed (Enter)

If this file does not exist within the iconpack zipfile, it will not be imported by the mod. The location of this file within the zip should be at the highest (root) level, not a subfolder. And the name is not a typo; it should be preceded by a period (makes this a hidden file in Linux/Android).

3rd Party App replacements

apps.txt
apps/
apps/com.android.mms-stat_notify_sms.png
apps/com.android.vending-stat_notify_marketplace_update.png
apps/com.google.android.gm-ic_notification_multiple_mail_holo_dark.png
apps/com.google.android.gm-stat_notify_email.png

Notes: This is the experimental support for per-app notification icon replacements. It consists of an apps.txt file located at the highest (root) level of the zipfile, and contains the following info in a specific format:

packagename-icon_name.png

Where packagename is the APK package name of the application in the Java namespace format. This is usually something like com.author.appname. To determine what the packagename of an APK is, you can use the following command on the phone (via terminal emulator or via adb shell):

pm list packages -f | grep -i appname

An example would be the Gmail new mail notification. To find the packagename, we could enter this vi adb shell:

pm list packages -f | grep -i Gmail

This might return someting similar to:

package:/system/app/Gmail.apk=com.android.gm

The part after the equals sign would be your package name. Another method of finding this data is through the Play Store. If you search for an app, say Gmail, the URL will show the package name as well.

Once you have the packagename, you have to determine what the name of the notification icon is. The easiest way to do this is to use a zip utility (WinZip, 7zip, RAR, etc) to extract the icons in the res/drawable-*/ directories within the app's APK. Most of the time the filenames start with stat_ or contain the word notify, but that isn't always the case.

If you find the file you're hoping to replace, rename it to the above format. Add the entry into the apps.txt file, and place both files into the iconpack zip. The apps.txt goes to the top level of the zip, and the image itself goes to the apps/ subfolder.

The mod supports replacing multiple images from a single package using the same naming convention above.

Because this functionality is experimental, it may not work for every application. Not all apps request notification icon resources in the same manner, so there's no guarantee it will work.

Battery and Battery Charge icons

battery/
battery/charge/
battery/charge/stat_sys_battery_charge_anim0.png
battery/charge/stat_sys_battery_charge_anim1.png
battery/charge/stat_sys_battery_charge_anim10.png
battery/charge/stat_sys_battery_charge_anim2.png
battery/charge/stat_sys_battery_charge_anim3.png
battery/charge/stat_sys_battery_charge_anim4.png
battery/charge/stat_sys_battery_charge_anim5.png
battery/charge/stat_sys_battery_charge_anim6.png
battery/charge/stat_sys_battery_charge_anim7.png
battery/charge/stat_sys_battery_charge_anim8.png
battery/charge/stat_sys_battery_charge_anim9.png
battery/stat_sys_battery_0.png
battery/stat_sys_battery_1.png
battery/stat_sys_battery_10.png
battery/stat_sys_battery_100.png
battery/stat_sys_battery_11.png
battery/stat_sys_battery_12.png
battery/stat_sys_battery_13.png
battery/stat_sys_battery_14.png
battery/stat_sys_battery_15.png
battery/stat_sys_battery_16.png
battery/stat_sys_battery_17.png
battery/stat_sys_battery_18.png
battery/stat_sys_battery_19.png
battery/stat_sys_battery_2.png
battery/stat_sys_battery_20.png
battery/stat_sys_battery_21.png
battery/stat_sys_battery_22.png
battery/stat_sys_battery_23.png
battery/stat_sys_battery_24.png
battery/stat_sys_battery_25.png
battery/stat_sys_battery_26.png
battery/stat_sys_battery_27.png
battery/stat_sys_battery_28.png
battery/stat_sys_battery_29.png
battery/stat_sys_battery_3.png
battery/stat_sys_battery_30.png
battery/stat_sys_battery_31.png
battery/stat_sys_battery_32.png
battery/stat_sys_battery_33.png
battery/stat_sys_battery_34.png
battery/stat_sys_battery_35.png
battery/stat_sys_battery_36.png
battery/stat_sys_battery_37.png
battery/stat_sys_battery_38.png
battery/stat_sys_battery_39.png
battery/stat_sys_battery_4.png
battery/stat_sys_battery_40.png
battery/stat_sys_battery_41.png
battery/stat_sys_battery_42.png
battery/stat_sys_battery_43.png
battery/stat_sys_battery_44.png
battery/stat_sys_battery_45.png
battery/stat_sys_battery_46.png
battery/stat_sys_battery_47.png
battery/stat_sys_battery_48.png
battery/stat_sys_battery_49.png
battery/stat_sys_battery_5.png
battery/stat_sys_battery_50.png
battery/stat_sys_battery_51.png
battery/stat_sys_battery_52.png
battery/stat_sys_battery_53.png
battery/stat_sys_battery_54.png
battery/stat_sys_battery_55.png
battery/stat_sys_battery_56.png
battery/stat_sys_battery_57.png
battery/stat_sys_battery_58.png
battery/stat_sys_battery_59.png
battery/stat_sys_battery_6.png
battery/stat_sys_battery_60.png
battery/stat_sys_battery_61.png
battery/stat_sys_battery_62.png
battery/stat_sys_battery_63.png
battery/stat_sys_battery_64.png
battery/stat_sys_battery_65.png
battery/stat_sys_battery_66.png
battery/stat_sys_battery_67.png
battery/stat_sys_battery_68.png
battery/stat_sys_battery_69.png
battery/stat_sys_battery_7.png
battery/stat_sys_battery_70.png
battery/stat_sys_battery_71.png
battery/stat_sys_battery_72.png
battery/stat_sys_battery_73.png
battery/stat_sys_battery_74.png
battery/stat_sys_battery_75.png
battery/stat_sys_battery_76.png
battery/stat_sys_battery_77.png
battery/stat_sys_battery_78.png
battery/stat_sys_battery_79.png
battery/stat_sys_battery_8.png
battery/stat_sys_battery_80.png
battery/stat_sys_battery_81.png
battery/stat_sys_battery_82.png
battery/stat_sys_battery_83.png
battery/stat_sys_battery_84.png
battery/stat_sys_battery_85.png
battery/stat_sys_battery_86.png
battery/stat_sys_battery_87.png
battery/stat_sys_battery_88.png
battery/stat_sys_battery_89.png
battery/stat_sys_battery_9.png
battery/stat_sys_battery_90.png
battery/stat_sys_battery_91.png
battery/stat_sys_battery_92.png
battery/stat_sys_battery_93.png
battery/stat_sys_battery_94.png
battery/stat_sys_battery_95.png
battery/stat_sys_battery_96.png
battery/stat_sys_battery_97.png
battery/stat_sys_battery_98.png
battery/stat_sys_battery_99.png
battery/stat_sys_battery_unknown.png

Notes: Battery icons should go in the battery/ subfolder, and battery charging icons should go in the battery/charge/ subfolder.

Bluetooth icons

bt/
bt/stat_sys_data_bluetooth.png
bt/stat_sys_data_bluetooth_connected.png

Notes: Bluetooth icons should be placed in the bt/ subfolder of the iconpack zip.

Framework icons

framework/
framework/icon_btn_copy_dark.png
framework/icon_btn_cut_dark.png
framework/icon_btn_paste_dark.png
framework/icon_btn_selected_all_dark.png
framework/icon_btn_search_web_dark.png
framework/stat_notify_car_mode.png
framework/stat_notify_sms.png
framework/stat_sys_adb.png
framework/stat_sys_download_anim0.png
framework/stat_sys_download_anim1.png
framework/stat_sys_download_anim2.png
framework/stat_sys_download_anim3.png
framework/stat_sys_download_anim4.png
framework/stat_sys_download_anim5.png
framework/stat_sys_beats.png
framework/stat_sys_hdmi_on.png
framework/stat_sys_upload_anim0.png
framework/stat_sys_upload_anim1.png
framework/stat_sys_upload_anim2.png
framework/stat_sys_upload_anim3.png
framework/stat_sys_upload_anim4.png
framework/stat_sys_upload_anim5.png
framework/text_anchor_bar_center.png
framework/text_anchor_bar_left.png
framework/text_anchor_bar_right.png

Notes: The framework files go in the framework/ subfolder of the iconpack zip, and contain both resources that are normally located in framework-res.apk and also within framework-htc-res.apk. Not all of the stock framework images are replaced by the mod. For now, it's just the ones in the list above. More may be added to this list at a later date.

GPS icons

gps/
gps/stat_sys_gps_acquiring.png
gps/stat_sys_gps_on.png

Notes: GPS icons go in the gps/ subfolder of the iconpack zip.

Miscellaneous (to the left) icons

misc/
misc/icon_btn_menu_dark.png
misc/icon_btn_voice_dark.png
misc/ic_notify_clear.png
misc/ic_notify_notifications.png
misc/ic_notify_quicksettings.png
misc/stat_notify_alarm.png
misc/stat_notify_image.png
misc/stat_notify_image_error.png
misc/stat_notify_more.png
misc/stat_sys_headphones.png
misc/stat_sys_no_sim.png
misc/stat_sys_ringer_silent.png
misc/stat_sys_ringer_vibrate.png
misc/stat_sys_sim_lock.png
misc/stat_sys_sync.png
misc/stat_sys_sync_anim0.png
misc/stat_sys_sync_error.png

Notes: Miscellaneous icons are the ones normally to the left of the statusbar, and also include some found in the notification drop-down window.

Mobile data icons, with each type in a subfolder

mobile/
mobile/3g/
mobile/3g/stat_sys_data_3g_connected.png
mobile/3g/stat_sys_data_3g_downlink_1.png
mobile/3g/stat_sys_data_3g_downlink_2.png
mobile/3g/stat_sys_data_3g_downlink_3.png
mobile/3g/stat_sys_data_3g_uplink_1.png
mobile/3g/stat_sys_data_3g_uplink_2.png
mobile/3g/stat_sys_data_3g_uplink_3.png
mobile/4g/
mobile/4g/stat_sys_data_4g_connected.png
mobile/4g/stat_sys_data_4g_downlink_1.png
mobile/4g/stat_sys_data_4g_downlink_2.png
mobile/4g/stat_sys_data_4g_downlink_3.png
mobile/4g/stat_sys_data_4g_uplink_1.png
mobile/4g/stat_sys_data_4g_uplink_2.png
mobile/4g/stat_sys_data_4g_uplink_3.png
mobile/e/
mobile/e/stat_sys_data_e_connected.png
mobile/e/stat_sys_data_e_downlink_1.png
mobile/e/stat_sys_data_e_downlink_2.png
mobile/e/stat_sys_data_e_downlink_3.png
mobile/e/stat_sys_data_e_uplink_1.png
mobile/e/stat_sys_data_e_uplink_2.png
mobile/e/stat_sys_data_e_uplink_3.png
mobile/g/
mobile/g/stat_sys_data_g_connected.png
mobile/g/stat_sys_data_g_downlink_1.png
mobile/g/stat_sys_data_g_downlink_2.png
mobile/g/stat_sys_data_g_downlink_3.png
mobile/g/stat_sys_data_g_uplink_1.png
mobile/g/stat_sys_data_g_uplink_2.png
mobile/g/stat_sys_data_g_uplink_3.png
mobile/h/
mobile/h/stat_sys_data_h_connected.png
mobile/h/stat_sys_data_h_downlink_1.png
mobile/h/stat_sys_data_h_downlink_2.png
mobile/h/stat_sys_data_h_downlink_3.png
mobile/h/stat_sys_data_h_uplink_1.png
mobile/h/stat_sys_data_h_uplink_2.png
mobile/h/stat_sys_data_h_uplink_3.png
mobile/evdo/
mobile/evdo/stat_sys_data_evdo_connected.png
mobile/evdo/stat_sys_data_evdo_downlink_1.png
mobile/evdo/stat_sys_data_evdo_downlink_2.png
mobile/evdo/stat_sys_data_evdo_downlink_3.png
mobile/evdo/stat_sys_data_evdo_uplink_1.png
mobile/evdo/stat_sys_data_evdo_uplink_2.png
mobile/evdo/stat_sys_data_evdo_uplink_3.png
mobile/1x/
mobile/1x/stat_sys_data_1x_connected.png
mobile/1x/stat_sys_data_1x_downlink_1.png
mobile/1x/stat_sys_data_1x_downlink_2.png
mobile/1x/stat_sys_data_1x_downlink_3.png
mobile/1x/stat_sys_data_1x_uplink_1.png
mobile/1x/stat_sys_data_1x_uplink_2.png
mobile/1x/stat_sys_data_1x_uplink_3.png
mobile/lte/
mobile/lte/stat_sys_data_lte_connected.png
mobile/lte/stat_sys_data_lte_downlink_1.png
mobile/lte/stat_sys_data_lte_downlink_2.png
mobile/lte/stat_sys_data_lte_downlink_3.png
mobile/lte/stat_sys_data_lte_uplink_1.png
mobile/lte/stat_sys_data_lte_uplink_2.png
mobile/lte/stat_sys_data_lte_uplink_3.png

Notes: The mobile data icons are separated out into subfolders beneath the top mobile/ subfolder, based on the band or network type. If the images found within these subfolders are all different, which is the case with the included default_iconpack.zip, then you will see different data icons depending on what network type your phone is using at that given moment. This sometimes results in "icon flipping", which is when you see different network icons in succession (3G->H->4G->3G). This is normal behavior on most International phones, but not on AT&T and T-Mobile devices. These carriers utilize only 3 or 4 different data icons, for all of the network types. This gives the illusion that your phone is always connected to a fast data network, when it could in reality be connected via a slower technology. But a positive side-effect of this is that the data icons rarely "flip".

If you'd like to restore the "stock" AT&T or T-Mobile behavior, and only see 3-4 network types, such as E, 4G, and 4G-LTE, you can do this by copying one set of network type icons over another, making sure you rename the files accordingly. An example is below:

Say you only want see the 4G icon when you're connected via 3G, H, or 4G. You can do this by copying these files:

mobile/4g/stat_sys_data_4g_connected.png
mobile/4g/stat_sys_data_4g_downlink_1.png
mobile/4g/stat_sys_data_4g_downlink_2.png
mobile/4g/stat_sys_data_4g_downlink_3.png
mobile/4g/stat_sys_data_4g_uplink_1.png
mobile/4g/stat_sys_data_4g_uplink_2.png
mobile/4g/stat_sys_data_4g_uplink_3.png

And renaming them to:

mobile/h/stat_sys_data_h_connected.png
mobile/h/stat_sys_data_h_downlink_1.png
mobile/h/stat_sys_data_h_downlink_2.png
mobile/h/stat_sys_data_h_downlink_3.png
mobile/h/stat_sys_data_h_uplink_1.png
mobile/h/stat_sys_data_h_uplink_2.png
mobile/h/stat_sys_data_h_uplink_3.png

Making sure you also place them in the proper subfolder. Repeat the process to overwrite the 3G files as well.

Telephony icons

phone/
phone/stat_notify_call_mute.png
phone/stat_notify_missed_call.png
phone/stat_notify_voicemail.png
phone/stat_sys_phone_call.png
phone/stat_sys_phone_call_bluetooth.png
phone/stat_sys_phone_call_forward.png
phone/stat_sys_phone_call_on_hold.png
phone/stat_sys_speakerphone.png

Notes: These are the icons shown when using the Dialer/Phone. They go in the phone/ subfolder within the iconpack zip.

HTC Power Saver icons

powermgr/
powermgr/stat_notify_application_monitor.png
powermgr/stat_notify_power_saver.png
powermgr/stat_notify_power_saver_off.png

Notes: HTC Power Saver icons go in the powermgr/ subfolder within the iconpack zip.

USB connection icon

settings/
settings/stat_sys_data_usb.png

Notes: This is the USB connection icon that is shown when you plug your phone into a computer. It goes in the settings/ subfolder in the iconpack zip.

Phone signal icons

signal/
signal/stat_sys_5signal_0.png
signal/stat_sys_5signal_1.png
signal/stat_sys_5signal_2.png
signal/stat_sys_5signal_3.png
signal/stat_sys_5signal_4.png
signal/stat_sys_5signal_5.png
signal/stat_sys_5signal_null.png
signal/stat_sys_signal_flightmode.png
signal/cdma_sys_6signal_0.png
signal/cdma_sys_6signal_1.png
signal/cdma_sys_6signal_2.png
signal/cdma_sys_6signal_3.png
signal/cdma_sys_6signal_4.png
signal/cdma_sys_6signal_5.png
signal/cdma_sys_6signal_6.png
signal/cdma_sys_6signal_null.png
signal/gsm_sys_6signal_0.png
signal/gsm_sys_6signal_1.png
signal/gsm_sys_6signal_2.png
signal/gsm_sys_6signal_3.png
signal/gsm_sys_6signal_4.png
signal/gsm_sys_6signal_5.png
signal/gsm_sys_6signal_6.png
signal/gsm_sys_6signal_null.png
signal/roam/
signal/roam/cdma_sys_r_6signal_0.png
signal/roam/cdma_sys_r_6signal_1.png
signal/roam/cdma_sys_r_6signal_2.png
signal/roam/cdma_sys_r_6signal_3.png
signal/roam/cdma_sys_r_6signal_4.png
signal/roam/cdma_sys_r_6signal_5.png
signal/roam/cdma_sys_r_6signal_6.png
signal/roam/gsm_sys_r_6signal_0.png
signal/roam/gsm_sys_r_6signal_1.png
signal/roam/gsm_sys_r_6signal_2.png
signal/roam/gsm_sys_r_6signal_3.png
signal/roam/gsm_sys_r_6signal_4.png
signal/roam/gsm_sys_r_6signal_5.png
signal/roam/gsm_sys_r_6signal_6.png

Notes: These are the phone signal strength icons, plus the airplane mode icon. They should be placed in the signal/ subfolder within the iconpack zip.

Wifi icons

wifi/
wifi/stat_sys_wifi_signal_0.png
wifi/stat_sys_wifi_signal_1.png
wifi/stat_sys_wifi_signal_2.png
wifi/stat_sys_wifi_signal_3.png
wifi/stat_sys_wifi_signal_4.png
wifi/stat_sys_wifi_signal_in_0.png
wifi/stat_sys_wifi_signal_in_1.png
wifi/stat_sys_wifi_signal_in_2.png
wifi/stat_sys_wifi_signal_in_3.png
wifi/stat_sys_wifi_signal_in_4.png
wifi/stat_sys_wifi_signal_inandout_0.png
wifi/stat_sys_wifi_signal_inandout_1.png
wifi/stat_sys_wifi_signal_inandout_2.png
wifi/stat_sys_wifi_signal_inandout_3.png
wifi/stat_sys_wifi_signal_inandout_4.png
wifi/stat_sys_wifi_signal_out_0.png
wifi/stat_sys_wifi_signal_out_1.png
wifi/stat_sys_wifi_signal_out_2.png
wifi/stat_sys_wifi_signal_out_3.png
wifi/stat_sys_wifi_signal_out_4.png

Notes: The Wifi signal strength icons go in the wifi/ subfolder within the iconpack zip.

New for Sense 6 is the utilization of the wifi in/out images to display when data is being uploaded and downloaded. I've added the additional image names to the code. For roms prior to Sense 6, the absence of these images shouldn't pose a problem, but if you're on Sense 6 and they aren't included in the iconpack, you'll end up seeing the stock wifi in/out images whenever there is activity. Please have the iconpack creator add/update these images.

Information for themers

If you are building/editing an iconpack, regardless of target device(s), please make icons at least 75x75px so that they will scale properly when imported. I have added code to the module so the icon scale can be selected by the user based on what they feel looks best on their device. This will allow both high-res and low-res devices to utilize your iconpack without image degradation.