├── .gitignore
├── AndroidManifest.xml
├── README.md
├── assets
├── MATERIAL_DASHBOARDV2_PREFERENCES.xml
├── com.aa.generaladaptiveapps_preferences.xml
├── com.ff.generaladaptiveapps_preferences.xml
├── myAppPrefs.xml
├── ninetyfour_playerPrefs.xml
├── ygohel18.zombieroadkill.1.xml
└── ygohel18.zombieroadkill.2.xml
├── icon.png
├── info.json
├── java
├── com
│ ├── chelpus
│ │ ├── Common.java
│ │ ├── GradientTextView.java
│ │ ├── HttpRequest.java
│ │ ├── Piper.java
│ │ ├── SimpleXPath.java
│ │ ├── Utils.java
│ │ ├── XNodeException.java
│ │ ├── XSupport.java
│ │ └── root
│ │ │ └── utils
│ │ │ ├── AdsBlockOFF.java
│ │ │ ├── AdsBlockON.java
│ │ │ ├── ClearODEXfiles.java
│ │ │ ├── SetCorePatch.java
│ │ │ ├── SetCoreRestore.java
│ │ │ ├── WriteSettingsXposed.java
│ │ │ ├── backup.java
│ │ │ ├── backupdata.java
│ │ │ ├── checkDataSize.java
│ │ │ ├── checkOdex.java
│ │ │ ├── checkRoot.java
│ │ │ ├── checkWithFramework.java
│ │ │ ├── check_sd_from_root.java
│ │ │ ├── clearDalvikCache.java
│ │ │ ├── cleardata.java
│ │ │ ├── cloneApp.java
│ │ │ ├── copyFile.java
│ │ │ ├── copyFileWithBackup.java
│ │ │ ├── copyLibsFilesToSystemBackup.java
│ │ │ ├── corecopy.java
│ │ │ ├── corepatch.java
│ │ │ ├── createapkcustom.java
│ │ │ ├── createnerorunpatch.java
│ │ │ ├── custompatch.java
│ │ │ ├── deodex.java
│ │ │ ├── install_to_system.java
│ │ │ ├── integrate_dalvik_code.java
│ │ │ ├── live_backup.java
│ │ │ ├── live_backuplib.java
│ │ │ ├── live_restore.java
│ │ │ ├── live_restorelib.java
│ │ │ ├── liverunpatch.java
│ │ │ ├── liverunpatchlib.java
│ │ │ ├── move_to_system.java
│ │ │ ├── nerorunpatch.java
│ │ │ ├── odex.java
│ │ │ ├── odexSystemApps.java
│ │ │ ├── odexrunpatch.java
│ │ │ ├── optimizedex.java
│ │ │ ├── pa.java
│ │ │ ├── pa2.java
│ │ │ ├── pinfo.java
│ │ │ ├── remove.java
│ │ │ ├── rename.java
│ │ │ ├── restore.java
│ │ │ ├── restoredata.java
│ │ │ ├── reworkSuperSu.java
│ │ │ ├── reworkhost.java
│ │ │ ├── runpatch.java
│ │ │ ├── runpatchads.java
│ │ │ ├── runpatchsupport.java
│ │ │ ├── runpatchsupportOld.java
│ │ │ ├── testcore.java
│ │ │ ├── transferSettings.java
│ │ │ ├── uninstall.java
│ │ │ └── unusedodex.java
│ ├── google
│ │ └── android
│ │ │ └── finsky
│ │ │ ├── billing
│ │ │ └── iab
│ │ │ │ ├── BuyActivity.java
│ │ │ │ ├── BuyMarketActivity.java
│ │ │ │ ├── DbHelper.java
│ │ │ │ ├── InAppBillingFService.java
│ │ │ │ ├── InAppBillingService.java
│ │ │ │ ├── ItemsListItem.java
│ │ │ │ ├── MarketBillingService.java
│ │ │ │ └── google
│ │ │ │ └── util
│ │ │ │ ├── Base64.java
│ │ │ │ ├── Base64DecoderException.java
│ │ │ │ ├── IabException.java
│ │ │ │ ├── IabHelper.java
│ │ │ │ ├── IabResult.java
│ │ │ │ ├── Inventory.java
│ │ │ │ ├── Purchase.java
│ │ │ │ ├── Security.java
│ │ │ │ └── SkuDetails.java
│ │ │ └── services
│ │ │ └── LicensingService.java
│ ├── googlecode
│ │ └── dex2jar
│ │ │ └── reader
│ │ │ └── io
│ │ │ ├── ArrayDataIn.java
│ │ │ ├── DataIn.java
│ │ │ ├── DataOut.java
│ │ │ └── LeDataOut.java
│ ├── mba
│ │ └── proxylight
│ │ │ ├── ProxyLight.java
│ │ │ ├── Request.java
│ │ │ ├── RequestFilter.java
│ │ │ ├── RequestProcessor.java
│ │ │ └── Socket.java
│ └── proxoid
│ │ ├── IProxoidControl.java
│ │ ├── Proxoid.java
│ │ └── ProxoidService.java
├── kellinwood
│ ├── logging
│ │ ├── AbstractLogger.java
│ │ ├── ConsoleLoggerFactory.java
│ │ ├── LoggerFactory.java
│ │ ├── LoggerInterface.java
│ │ ├── LoggerManager.java
│ │ ├── NullLoggerFactory.java
│ │ ├── StreamLogger.java
│ │ ├── android
│ │ │ ├── AndroidLogger.java
│ │ │ └── AndroidLoggerFactory.java
│ │ └── log4j
│ │ │ ├── Log4jLogger.java
│ │ │ └── Log4jLoggerFactory.java
│ ├── security
│ │ └── zipsigner
│ │ │ ├── AutoKeyException.java
│ │ │ ├── Base64.java
│ │ │ ├── DefaultResourceAdapter.java
│ │ │ ├── HexDumpEncoder.java
│ │ │ ├── HexEncoder.java
│ │ │ ├── KeySet.java
│ │ │ ├── ProgressEvent.java
│ │ │ ├── ProgressHelper.java
│ │ │ ├── ProgressListener.java
│ │ │ ├── ResourceAdapter.java
│ │ │ ├── ZipSignature.java
│ │ │ ├── ZipSigner.java
│ │ │ └── optional
│ │ │ ├── CertCreator.java
│ │ │ ├── CustomKeySigner.java
│ │ │ ├── DistinguishedNameValues.java
│ │ │ ├── Fingerprint.java
│ │ │ ├── JKS.java
│ │ │ ├── JksKeyStore.java
│ │ │ ├── KeyNameConflictException.java
│ │ │ ├── KeyStoreFileManager.java
│ │ │ ├── PasswordObfuscator.java
│ │ │ └── SignatureBlockGenerator.java
│ └── zipio
│ │ ├── CentralEnd.java
│ │ ├── ZioEntry.java
│ │ ├── ZioEntryInputStream.java
│ │ ├── ZioEntryOutputStream.java
│ │ ├── ZipInput.java
│ │ ├── ZipListingHelper.java
│ │ └── ZipOutput.java
├── net
│ └── lingala
│ │ └── zip4j
│ │ ├── core
│ │ ├── HeaderReader.java
│ │ ├── HeaderWriter.java
│ │ └── ZipFile.java
│ │ ├── crypto
│ │ ├── AESDecrypter.java
│ │ ├── AESEncrpyter.java
│ │ ├── IDecrypter.java
│ │ ├── IEncrypter.java
│ │ ├── PBKDF2
│ │ │ ├── BinTools.java
│ │ │ ├── MacBasedPRF.java
│ │ │ ├── PBKDF2Engine.java
│ │ │ ├── PBKDF2HexFormatter.java
│ │ │ ├── PBKDF2Parameters.java
│ │ │ └── PRF.java
│ │ ├── StandardDecrypter.java
│ │ ├── StandardEncrypter.java
│ │ └── engine
│ │ │ ├── AESEngine.java
│ │ │ └── ZipCryptoEngine.java
│ │ ├── exception
│ │ ├── ZipException.java
│ │ └── ZipExceptionConstants.java
│ │ ├── io
│ │ ├── BaseInputStream.java
│ │ ├── BaseOutputStream.java
│ │ ├── CipherOutputStream.java
│ │ ├── DeflaterOutputStream.java
│ │ ├── InflaterInputStream.java
│ │ ├── PartInputStream.java
│ │ ├── SplitOutputStream.java
│ │ ├── ZipInputStream.java
│ │ └── ZipOutputStream.java
│ │ ├── model
│ │ ├── AESExtraDataRecord.java
│ │ ├── ArchiveExtraDataRecord.java
│ │ ├── CentralDirectory.java
│ │ ├── DataDescriptor.java
│ │ ├── DigitalSignature.java
│ │ ├── EndCentralDirRecord.java
│ │ ├── ExtraDataRecord.java
│ │ ├── FileHeader.java
│ │ ├── LocalFileHeader.java
│ │ ├── UnzipEngineParameters.java
│ │ ├── UnzipParameters.java
│ │ ├── Zip64EndCentralDirLocator.java
│ │ ├── Zip64EndCentralDirRecord.java
│ │ ├── Zip64ExtendedInfo.java
│ │ ├── ZipModel.java
│ │ └── ZipParameters.java
│ │ ├── progress
│ │ └── ProgressMonitor.java
│ │ ├── unzip
│ │ ├── Unzip.java
│ │ ├── UnzipEngine.java
│ │ └── UnzipUtil.java
│ │ ├── util
│ │ ├── ArchiveMaintainer.java
│ │ ├── CRCUtil.java
│ │ ├── InternalZipConstants.java
│ │ ├── Raw.java
│ │ ├── Zip4jConstants.java
│ │ └── Zip4jUtil.java
│ │ └── zip
│ │ └── ZipEngine.java
├── org
│ └── tukaani
│ │ └── xz
│ │ ├── ARMOptions.java
│ │ ├── ARMThumbOptions.java
│ │ ├── BCJCoder.java
│ │ ├── BCJDecoder.java
│ │ ├── BCJEncoder.java
│ │ ├── BCJOptions.java
│ │ ├── BlockInputStream.java
│ │ ├── BlockOutputStream.java
│ │ ├── CorruptedInputException.java
│ │ ├── CountingInputStream.java
│ │ ├── CountingOutputStream.java
│ │ ├── DeltaCoder.java
│ │ ├── DeltaDecoder.java
│ │ ├── DeltaEncoder.java
│ │ ├── DeltaInputStream.java
│ │ ├── DeltaOptions.java
│ │ ├── DeltaOutputStream.java
│ │ ├── FilterCoder.java
│ │ ├── FilterDecoder.java
│ │ ├── FilterEncoder.java
│ │ ├── FilterOptions.java
│ │ ├── FinishableOutputStream.java
│ │ ├── FinishableWrapperOutputStream.java
│ │ ├── IA64Options.java
│ │ ├── IndexIndicatorException.java
│ │ ├── LZMA2Coder.java
│ │ ├── LZMA2Decoder.java
│ │ ├── LZMA2Encoder.java
│ │ ├── LZMA2InputStream.java
│ │ ├── LZMA2Options.java
│ │ ├── LZMA2OutputStream.java
│ │ ├── LZMAInputStream.java
│ │ ├── MemoryLimitException.java
│ │ ├── PowerPCOptions.java
│ │ ├── RawCoder.java
│ │ ├── SPARCOptions.java
│ │ ├── SeekableFileInputStream.java
│ │ ├── SeekableInputStream.java
│ │ ├── SeekableXZInputStream.java
│ │ ├── SimpleInputStream.java
│ │ ├── SimpleOutputStream.java
│ │ ├── SingleXZInputStream.java
│ │ ├── UncompressedLZMA2OutputStream.java
│ │ ├── UnsupportedOptionsException.java
│ │ ├── X86Options.java
│ │ ├── XZ.java
│ │ ├── XZFormatException.java
│ │ ├── XZIOException.java
│ │ ├── XZInputStream.java
│ │ ├── XZOutputStream.java
│ │ ├── check
│ │ ├── CRC32.java
│ │ ├── CRC64.java
│ │ ├── Check.java
│ │ ├── None.java
│ │ └── SHA256.java
│ │ ├── common
│ │ ├── DecoderUtil.java
│ │ ├── EncoderUtil.java
│ │ ├── StreamFlags.java
│ │ └── Util.java
│ │ ├── delta
│ │ ├── DeltaCoder.java
│ │ ├── DeltaDecoder.java
│ │ └── DeltaEncoder.java
│ │ ├── index
│ │ ├── BlockInfo.java
│ │ ├── IndexBase.java
│ │ ├── IndexDecoder.java
│ │ ├── IndexEncoder.java
│ │ ├── IndexHash.java
│ │ └── IndexRecord.java
│ │ ├── lz
│ │ ├── BT4.java
│ │ ├── CRC32Hash.java
│ │ ├── HC4.java
│ │ ├── Hash234.java
│ │ ├── LZDecoder.java
│ │ ├── LZEncoder.java
│ │ └── Matches.java
│ │ ├── lzma
│ │ ├── LZMACoder.java
│ │ ├── LZMADecoder.java
│ │ ├── LZMAEncoder.java
│ │ ├── LZMAEncoderFast.java
│ │ ├── LZMAEncoderNormal.java
│ │ ├── Optimum.java
│ │ └── State.java
│ │ ├── package-info.java
│ │ ├── rangecoder
│ │ ├── RangeCoder.java
│ │ ├── RangeDecoder.java
│ │ ├── RangeDecoderFromBuffer.java
│ │ ├── RangeDecoderFromStream.java
│ │ └── RangeEncoder.java
│ │ └── simple
│ │ ├── ARM.java
│ │ ├── ARMThumb.java
│ │ ├── IA64.java
│ │ ├── PowerPC.java
│ │ ├── SPARC.java
│ │ ├── SimpleFilter.java
│ │ └── X86.java
└── pxb
│ └── android
│ ├── ResConst.java
│ ├── StringItem.java
│ ├── StringItems.java
│ ├── arsc
│ ├── ArscDumper.java
│ ├── ArscParser.java
│ ├── ArscWriter.java
│ ├── BagValue.java
│ ├── Config.java
│ ├── Pkg.java
│ ├── ResEntry.java
│ ├── ResSpec.java
│ ├── Type.java
│ └── Value.java
│ ├── axml
│ ├── Axml.java
│ ├── AxmlParser.java
│ ├── AxmlReader.java
│ ├── AxmlVisitor.java
│ ├── AxmlWriter.java
│ ├── DumpAdapter.java
│ ├── NodeVisitor.java
│ ├── R.java
│ ├── Util.java
│ └── ValueWrapper.java
│ └── axmlLP
│ ├── Axml.java
│ ├── AxmlReader.java
│ ├── AxmlVisitor.java
│ ├── AxmlWriter.java
│ ├── DumpAdapter.java
│ ├── EmptyAdapter.java
│ ├── EnableDebugger.java
│ ├── StringItem.java
│ └── StringItems.java
└── res
├── drawable-hdpi-v4
├── android.png
├── auto.png
├── button_binder.xml
├── button_binder_focus.xml
├── button_binder_pressed.xml
├── button_clear.png
├── button_clear_press.png
├── cbutton.xml
├── checkbox_selector.xml
├── checkbox_selector_2.xml
├── clear.png
├── context_ads.png
├── context_backup.png
├── context_backup_data.png
├── context_create_apk.png
├── context_custom_patch.png
├── context_deodex.png
├── context_lvl.png
├── context_odex.png
├── context_patch_reboot.png
├── context_patcher.png
├── context_permissions.png
├── context_recycle.png
├── context_restore.png
├── context_share.png
├── faq.png
├── fb_back.png
├── fb_folder.png
├── file_icon.png
├── ic_angel.png
├── ic_bolen.png
├── ic_launcher.png
├── ic_notify.png
├── ic_progress_indicator.png
├── ic_vopros.png
├── ic_wait.png
├── info_app.png
├── klev.png
├── klev_down.png
├── menu.png
├── menu_back.png
├── move_to.png
├── rect_text_edit_transparent.xml
├── remove.png
├── rounded_corner.xml
├── run.png
├── settings.png
├── star.png
├── star_down.png
├── switch_off.png
├── switch_on.png
├── tab_bg_selected.xml
├── tab_bg_selector.xml
├── tab_bg_unselected.xml
├── tab_divider.9.png
├── tab_text_selector.xml
├── toggleswitch.xml
├── update.png
└── widget_border.xml
├── drawable-ldpi-v4
├── button_binder.xml
├── button_binder_focus.xml
├── button_binder_pressed.xml
├── cbutton.xml
├── ic_notify.png
├── rounded_corner.xml
├── tab_bg_selected.xml
├── tab_bg_selector.xml
├── tab_bg_unselected.xml
├── tab_text_selector.xml
├── toggleswitch.xml
└── widget_border.xml
├── drawable-mdpi-v4
├── button_binder.xml
├── button_binder_focus.xml
├── button_binder_pressed.xml
├── cbutton.xml
├── ic_launcher.png
├── ic_notify.png
├── ic_progress_indicator.png
├── rounded_corner.xml
├── tab_bg_selected.xml
├── tab_bg_selector.xml
├── tab_bg_unselected.xml
├── tab_text_selector.xml
├── toggleswitch.xml
└── widget_border.xml
├── drawable-xhdpi-v4
├── ic_launcher.png
└── ic_progress_indicator.png
├── drawable-xxhdpi-v4
├── ic_launcher.png
└── ic_progress_indicator.png
├── drawable-xxxhdpi-v4
└── ic_launcher.png
├── drawable
├── background_alert.xml
├── background_gradient.xml
├── button_advanced.xml
├── button_advanced_press.xml
├── button_alert.xml
├── button_binder.xml
├── button_binder_focus.xml
├── button_binder_pressed.xml
├── button_panel.xml
├── cbutton.xml
├── cbutton_adv.xml
├── cbutton_clear.xml
├── custom_progress_bar_horizontal.xml
├── my_progress_indeterminate.xml
├── rect_text_edit.xml
├── rounded_corner.xml
├── tab_bg_selected.xml
├── tab_bg_selector.xml
├── tab_bg_unselected.xml
├── tab_text_selector.xml
├── toggleswitch.xml
└── widget_border.xml
├── layout-v11
└── applicationdialog.xml
├── layout-v17
└── core_patch_result.xml
├── layout
├── aboutdialog.xml
├── activity_main.xml
├── advanced_filter.xml
├── alert_dialog.xml
├── android_patch_widget.xml
├── app_disabler_widget.xml
├── applicationdialog.xml
├── backup_context_menu.xml
├── binder.xml
├── binder_create_dir.xml
├── binder_file_browser.xml
├── binder_widget.xml
├── binderdialog.xml
├── binditemview.xml
├── bootlistitemview.xml
├── buy_dialog.xml
├── child_categoty_pref_view.xml
├── child_change_dir_pref_view.xml
├── child_day_on_up_pref_view.xml
├── child_icon_change_pref_view.xml
├── child_name_sheme_pref_view.xml
├── child_orientation_pref_view.xml
├── child_root_pref_view.xml
├── child_sort_pref_view.xml
├── child_text_size_pref_view.xml
├── child_view.xml
├── contextmenu.xml
├── core_patch_result.xml
├── corepatch.xml
├── corepatch_layout.xml
├── custom_title.xml
├── customdialog.xml
├── custompatchdialog.xml
├── extpatchdialog.xml
├── file_browser.xml
├── file_browser_row.xml
├── fragment_filter.xml
├── freespace.xml
├── gm_installer.xml
├── group_check_view.xml
├── group_view.xml
├── help.xml
├── icon_app_disabler_menu.xml
├── icon_context_menu.xml
├── livepatchdialog.xml
├── message.xml
├── patchdialog.xml
├── pkglistitemview.xml
├── pkglistitemview_no_icon.xml
├── pkglistviewlayout.xml
├── pkglistviewlayout_no_root.xml
├── progress_dialog.xml
├── purchases_for_delete.xml
├── selectpatch.xml
├── switchers_context_menu.xml
├── sys_dialog.xml
├── sys_dialog_ok.xml
├── tabs_bg.xml
├── widget_inapp.xml
├── widget_lvl.xml
├── widget_proxy_gp.xml
└── xposedpatch.xml
├── menu
└── mainmenu.xml
├── mipmap-hdpi-v4
├── clone.png
├── ic_group_check_items.png
├── ic_group_checkable.png
├── ic_group_editable.png
├── ic_group_run.png
├── ic_group_selectable.png
├── ic_launcher2.png
├── ic_launcher3.png
├── ic_launcher4.png
├── ic_launcher5.png
├── ic_launcher6.png
├── ic_launcher7.png
├── ic_launcher8.png
├── vertical_switcher_off.png
└── vertical_switcher_on.png
├── mipmap-mdpi-v4
├── clone.png
├── ic_group_check_items.png
├── ic_group_checkable.png
├── ic_group_editable.png
├── ic_group_run.png
├── ic_group_selectable.png
├── ic_launcher2.png
├── ic_launcher3.png
├── ic_launcher4.png
├── ic_launcher5.png
├── ic_launcher6.png
├── ic_launcher7.png
├── ic_launcher8.png
├── vertical_switcher_off.png
└── vertical_switcher_on.png
├── mipmap-xhdpi-v4
├── clone.png
├── ic_group_check_items.png
├── ic_group_checkable.png
├── ic_group_editable.png
├── ic_group_run.png
├── ic_group_selectable.png
├── ic_launcher2.png
├── ic_launcher3.png
├── ic_launcher4.png
├── ic_launcher5.png
├── ic_launcher6.png
├── ic_launcher7.png
├── ic_launcher8.png
├── vertical_switcher_off.png
└── vertical_switcher_on.png
├── mipmap-xxhdpi-v4
├── clone.png
├── ic_group_check_items.png
├── ic_group_checkable.png
├── ic_group_editable.png
├── ic_group_run.png
├── ic_group_selectable.png
├── ic_launcher2.png
├── ic_launcher3.png
├── ic_launcher4.png
├── ic_launcher5.png
├── ic_launcher6.png
├── ic_launcher7.png
├── ic_launcher8.png
├── vertical_switcher_off.png
└── vertical_switcher_on.png
├── mipmap-xxxhdpi-v4
├── clone.png
├── ic_group_check_items.png
├── ic_group_checkable.png
├── ic_group_editable.png
├── ic_group_run.png
├── ic_group_selectable.png
├── ic_launcher2.png
├── ic_launcher3.png
├── ic_launcher4.png
├── ic_launcher5.png
├── ic_launcher6.png
├── ic_launcher7.png
├── ic_launcher8.png
├── vertical_switcher_off.png
└── vertical_switcher_on.png
├── values-ar-rEG
└── strings.xml
├── values-ar-rSY
└── strings.xml
├── values-ar
├── raws.xml
└── strings.xml
├── values-az
├── raws.xml
└── strings.xml
├── values-be
├── raws.xml
└── strings.xml
├── values-bg
├── raws.xml
└── strings.xml
├── values-bn-rBD
└── strings.xml
├── values-cs
├── raws.xml
└── strings.xml
├── values-da
├── raws.xml
└── strings.xml
├── values-de
├── raws.xml
└── strings.xml
├── values-el
└── strings.xml
├── values-es-rES
├── raws.xml
└── strings.xml
├── values-es-rMX
├── raws.xml
└── strings.xml
├── values-es
├── raws.xml
└── strings.xml
├── values-fa
├── raws.xml
└── strings.xml
├── values-fi
├── raws.xml
└── strings.xml
├── values-fr
└── strings.xml
├── values-gu
├── raws.xml
└── strings.xml
├── values-he
└── strings.xml
├── values-hi
├── raws.xml
└── strings.xml
├── values-hr
└── strings.xml
├── values-hu
├── raws.xml
└── strings.xml
├── values-hy-rAM
└── strings.xml
├── values-id
├── raws.xml
└── strings.xml
├── values-in
└── raws.xml
├── values-it
└── strings.xml
├── values-iw
└── strings.xml
├── values-ja
└── strings.xml
├── values-km-rKH
└── strings.xml
├── values-km
└── strings.xml
├── values-ko
├── raws.xml
└── strings.xml
├── values-ku
└── strings.xml
├── values-lt
├── raws.xml
└── strings.xml
├── values-lv
└── strings.xml
├── values-ml
└── strings.xml
├── values-my
├── raws.xml
└── strings.xml
├── values-nl
└── strings.xml
├── values-pl
└── strings.xml
├── values-pt-rBR
└── strings.xml
├── values-pt
└── strings.xml
├── values-ro
├── raws.xml
└── strings.xml
├── values-ru
├── raws.xml
└── strings.xml
├── values-si
└── strings.xml
├── values-sk
├── raws.xml
└── strings.xml
├── values-sl
└── strings.xml
├── values-sr
└── strings.xml
├── values-th
└── strings.xml
├── values-tl-rPH
└── strings.xml
├── values-tr
├── raws.xml
└── strings.xml
├── values-ug
├── raws.xml
└── strings.xml
├── values-uk-rUA
└── strings.xml
├── values-uk
└── raws.xml
├── values-uz
└── strings.xml
├── values-vi
├── raws.xml
└── strings.xml
├── values-zh-rCN
├── raws.xml
└── strings.xml
├── values-zh-rHK
├── raws.xml
└── strings.xml
├── values-zh-rTW
├── raws.xml
└── strings.xml
├── values
├── arrays.xml
├── colors.xml
├── dimens.xml
├── drawables.xml
├── menus.xml
├── raws.xml
├── strings.xml
├── styles.xml
└── xmls.xml
├── xml-v11
├── android_patch_widget_info.xml
├── app_disabler_widget.xml
├── binder_widget_info.xml
├── inapp_widget_provider.xml
├── lvl_widget_provider.xml
└── proxy_gp_widget_provider.xml
├── xml-v12
├── android_patch_widget_info.xml
├── app_disabler_widget.xml
├── binder_widget_info.xml
├── inapp_widget_provider.xml
├── lvl_widget_provider.xml
└── proxy_gp_widget_provider.xml
├── xml-v17
├── android_patch_widget_info.xml
├── app_disabler_widget.xml
├── binder_widget_info.xml
├── inapp_widget_provider.xml
├── lvl_widget_provider.xml
└── proxy_gp_widget_provider.xml
└── xml
├── android_patch_widget_info.xml
├── app_disabler_widget.xml
├── binder_widget_info.xml
├── inapp_widget_provider.xml
├── lvl_widget_provider.xml
├── preferences.xml
└── proxy_gp_widget_provider.xml
/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 |
3 | # Mobile Tools for Java (J2ME)
4 | .mtj.tmp/
5 |
6 | # Package Files #
7 | *.jar
8 | *.war
9 | *.ear
10 |
11 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
12 | hs_err_pid*
13 |
--------------------------------------------------------------------------------
/assets/MATERIAL_DASHBOARDV2_PREFERENCES.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
--------------------------------------------------------------------------------
/assets/com.aa.generaladaptiveapps_preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/assets/com.ff.generaladaptiveapps_preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/assets/ninetyfour_playerPrefs.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
--------------------------------------------------------------------------------
/assets/ygohel18.zombieroadkill.1.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/assets/ygohel18.zombieroadkill.2.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/icon.png
--------------------------------------------------------------------------------
/info.json:
--------------------------------------------------------------------------------
1 | {"package_label":"Lucky Patcher","package_name":"com.android.vending.billing.InAppBillingService.LOCK","has_java_sources":true,"has_xml_sources":true}
--------------------------------------------------------------------------------
/java/com/chelpus/GradientTextView.java:
--------------------------------------------------------------------------------
1 | package com.chelpus;
2 |
3 | import android.content.Context;
4 | import android.graphics.Color;
5 | import android.graphics.LinearGradient;
6 | import android.graphics.Shader.TileMode;
7 | import android.util.AttributeSet;
8 | import android.widget.TextView;
9 |
10 | public class GradientTextView extends TextView {
11 | public GradientTextView(Context context) {
12 | super(context, null, -1);
13 | }
14 |
15 | public GradientTextView(Context context, AttributeSet attrs) {
16 | super(context, attrs, -1);
17 | }
18 |
19 | public GradientTextView(Context context, AttributeSet attrs, int defStyle) {
20 | super(context, attrs, defStyle);
21 | }
22 |
23 | protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
24 | super.onLayout(changed, left, top, right, bottom);
25 | if (changed) {
26 | getPaint().setShader(new LinearGradient(0.0f, 0.0f, (float) getWidth(), 0.0f, Color.parseColor("#FF6699cc"), Color.parseColor("#906699cc"), TileMode.CLAMP));
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/java/com/chelpus/XNodeException.java:
--------------------------------------------------------------------------------
1 | package com.chelpus;
2 |
3 | public class XNodeException extends Exception {
4 | private static final long serialVersionUID = 6194649056119743851L;
5 |
6 | public XNodeException(String message) {
7 | super(message);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/java/com/chelpus/root/utils/WriteSettingsXposed.java:
--------------------------------------------------------------------------------
1 | package com.chelpus.root.utils;
2 |
3 | import com.chelpus.Utils;
4 | import com.google.android.finsky.billing.iab.google.util.Base64;
5 | import com.google.android.finsky.billing.iab.google.util.Base64DecoderException;
6 | import java.io.File;
7 |
8 | public class WriteSettingsXposed {
9 | public static void main(String[] params) {
10 | Utils.startRootJava(new Object() {
11 | });
12 | try {
13 | Utils.save_text_to_file(new File("/data/lp/xposed"), new String(Base64.decode(params[0])));
14 | new File("/data/lp/xposed").setLastModified(System.currentTimeMillis());
15 | } catch (Base64DecoderException e) {
16 | e.printStackTrace();
17 | }
18 | Utils.run_all_no_root("chmod", "777", "/data/lp/xposed");
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/java/com/chelpus/root/utils/checkDataSize.java:
--------------------------------------------------------------------------------
1 | package com.chelpus.root.utils;
2 |
3 | import com.chelpus.Utils;
4 | import java.io.File;
5 | import java.io.IOException;
6 |
7 | public class checkDataSize {
8 | public static void main(String[] paramArrayOfString) {
9 | Utils.startRootJava(null);
10 | float size = 0.0f;
11 | try {
12 | size = new Utils("calculSize").sizeFolder(new File(paramArrayOfString[0]), true);
13 | } catch (IOException e) {
14 | e.printStackTrace();
15 | }
16 | System.out.println(String.format("%.3f", new Object[]{Float.valueOf(size)}));
17 | Utils.exitFromRootJava();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/java/com/chelpus/root/utils/checkWithFramework.java:
--------------------------------------------------------------------------------
1 | package com.chelpus.root.utils;
2 |
3 | import android.util.Log;
4 | import com.chelpus.Utils;
5 |
6 | public class checkWithFramework {
7 | public static void main(String[] paramArrayOfString) {
8 | Utils.startRootJava(new Object() {
9 | });
10 | try {
11 | Log.d("", "");
12 | System.out.println("found wtchFrm");
13 | Utils.exitFromRootJava();
14 | } catch (UnsatisfiedLinkError e) {
15 | System.out.println("withoutFramework");
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/java/com/chelpus/root/utils/check_sd_from_root.java:
--------------------------------------------------------------------------------
1 | package com.chelpus.root.utils;
2 |
3 | import com.chelpus.Utils;
4 | import java.io.File;
5 |
6 | public class check_sd_from_root {
7 | public static void main(String[] paramArrayOfString) {
8 | Utils.startRootJava(new Object() {
9 | });
10 | try {
11 | if (new File(paramArrayOfString[0] + "/test.tmp").exists()) {
12 | System.out.println("LuckyPatcher: Found test.tmp");
13 | new File(paramArrayOfString[0] + "/test.tmp").delete();
14 | }
15 | } catch (Exception e) {
16 | e.printStackTrace();
17 | }
18 | Utils.exitFromRootJava();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/java/com/chelpus/root/utils/optimizedex.java:
--------------------------------------------------------------------------------
1 | package com.chelpus.root.utils;
2 |
3 | import com.android.vending.billing.InAppBillingService.LOCK.listAppsFragment;
4 | import com.chelpus.Utils;
5 | import java.io.File;
6 |
7 | public class optimizedex {
8 | public static void main(String[] paramArrayOfString) {
9 | Utils.startRootJava(new Object() {
10 | });
11 | String path_apk = paramArrayOfString[0];
12 | String uid = paramArrayOfString[1];
13 | String runtime = paramArrayOfString[2];
14 | String workingDir = listAppsFragment.toolfilesdir + "/tmp";
15 | int res = 255;
16 | if (Utils.classes_test(new File(path_apk))) {
17 | res = Utils.dexopt(path_apk, workingDir, Utils.getOdexForCreate(path_apk, uid), uid, Boolean.valueOf(runtime.equals("ART")));
18 | } else {
19 | System.out.println("chelpus_return_10");
20 | }
21 | if (res == 0) {
22 | System.out.println("chelpus_return_0");
23 | }
24 | if (res == 1) {
25 | System.out.println("chelpus_return_1");
26 | }
27 | if (res == 4) {
28 | System.out.println("chelpus_return_4");
29 | }
30 | Utils.exitFromRootJava();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/java/com/chelpus/root/utils/rename.java:
--------------------------------------------------------------------------------
1 | package com.chelpus.root.utils;
2 |
3 | import com.chelpus.Utils;
4 | import java.io.File;
5 |
6 | public class rename {
7 | public static void main(String[] paramArrayOfString) {
8 | Utils.startRootJava(new Object() {
9 | });
10 | File file = new File(paramArrayOfString[0]);
11 | File new_name = new File(paramArrayOfString[1]);
12 | System.out.println(file);
13 | System.out.println(new_name);
14 | file.renameTo(new_name);
15 | System.out.println("File rename from " + file + " to " + new_name);
16 | Utils.exitFromRootJava();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/java/com/chelpus/root/utils/reworkhost.java:
--------------------------------------------------------------------------------
1 | package com.chelpus.root.utils;
2 |
3 | import com.chelpus.Utils;
4 | import java.io.File;
5 |
6 | public class reworkhost {
7 | public static void main(String[] paramArrayOfString) {
8 | Utils.startRootJava(new Object() {
9 | });
10 | Utils.save_text_to_file(new File("/system/etc/hosts"), "127.0.0.1 localhost\n");
11 | Utils.cmdParam("chmod", "0644", "/system/etc/hosts");
12 | Utils.exitFromRootJava();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/java/com/chelpus/root/utils/unusedodex.java:
--------------------------------------------------------------------------------
1 | package com.chelpus.root.utils;
2 |
3 | import com.chelpus.Utils;
4 | import java.io.File;
5 |
6 | public class unusedodex {
7 | public static void main(String[] paramArrayOfString) {
8 | Utils.startRootJava(new Object() {
9 | });
10 | int j = 0;
11 | try {
12 | File appDir = new File("/data/app/");
13 | if (appDir.exists()) {
14 | for (File file : appDir.listFiles()) {
15 | File TempFile = new File(Utils.changeExtension(file.toString(), "apk"));
16 | if (file.toString().toLowerCase().endsWith(".odex") && !TempFile.exists()) {
17 | file.delete();
18 | System.out.println(file + "|");
19 | j++;
20 | }
21 | }
22 | }
23 | } catch (Exception e) {
24 | System.out.println("Exception e" + e.toString());
25 | }
26 | if (j > 0) {
27 | System.out.println("Unused ODEX in /data/app/ removed!");
28 | }
29 | Utils.exitFromRootJava();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/java/com/google/android/finsky/billing/iab/ItemsListItem.java:
--------------------------------------------------------------------------------
1 | package com.google.android.finsky.billing.iab;
2 |
3 | public class ItemsListItem {
4 | public int autobuy = 0;
5 | public String itemID;
6 | public String pData;
7 | public String pSignature;
8 | public int savePurchase = 0;
9 |
10 | public ItemsListItem(String itemId, String Data, String Signature, int savePurchase, int autobuy) {
11 | this.itemID = itemId;
12 | this.pData = Data;
13 | this.pSignature = Signature;
14 | this.savePurchase = savePurchase;
15 | this.autobuy = autobuy;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/java/com/google/android/finsky/billing/iab/google/util/Base64DecoderException.java:
--------------------------------------------------------------------------------
1 | package com.google.android.finsky.billing.iab.google.util;
2 |
3 | public class Base64DecoderException extends Exception {
4 | private static final long serialVersionUID = 1;
5 |
6 | public Base64DecoderException(String s) {
7 | super(s);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/java/com/google/android/finsky/billing/iab/google/util/IabException.java:
--------------------------------------------------------------------------------
1 | package com.google.android.finsky.billing.iab.google.util;
2 |
3 | public class IabException extends Exception {
4 | IabResult mResult;
5 |
6 | public IabException(IabResult r) {
7 | this(r, null);
8 | }
9 |
10 | public IabException(int response, String message) {
11 | this(new IabResult(response, message));
12 | }
13 |
14 | public IabException(IabResult r, Exception cause) {
15 | super(r.getMessage(), cause);
16 | this.mResult = r;
17 | }
18 |
19 | public IabException(int response, String message, Exception cause) {
20 | this(new IabResult(response, message), cause);
21 | }
22 |
23 | public IabResult getResult() {
24 | return this.mResult;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/java/com/google/android/finsky/billing/iab/google/util/IabResult.java:
--------------------------------------------------------------------------------
1 | package com.google.android.finsky.billing.iab.google.util;
2 |
3 | public class IabResult {
4 | String mMessage;
5 | int mResponse;
6 |
7 | public IabResult(int response, String message) {
8 | this.mResponse = response;
9 | if (message == null || message.trim().length() == 0) {
10 | this.mMessage = IabHelper.getResponseDesc(response);
11 | } else {
12 | this.mMessage = new StringBuilder(String.valueOf(message)).append(" (response: ").append(IabHelper.getResponseDesc(response)).append(")").toString();
13 | }
14 | }
15 |
16 | public int getResponse() {
17 | return this.mResponse;
18 | }
19 |
20 | public String getMessage() {
21 | return this.mMessage;
22 | }
23 |
24 | public boolean isSuccess() {
25 | return this.mResponse == 0;
26 | }
27 |
28 | public boolean isFailure() {
29 | return !isSuccess();
30 | }
31 |
32 | public String toString() {
33 | return "IabResult: " + getMessage();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/java/com/googlecode/dex2jar/reader/io/DataIn.java:
--------------------------------------------------------------------------------
1 | package com.googlecode.dex2jar.reader.io;
2 |
3 | public interface DataIn {
4 | int getCurrentPosition();
5 |
6 | void move(int i);
7 |
8 | void pop();
9 |
10 | void push();
11 |
12 | void pushMove(int i);
13 |
14 | int readByte();
15 |
16 | byte[] readBytes(int i);
17 |
18 | int readIntx();
19 |
20 | long readLeb128();
21 |
22 | int readShortx();
23 |
24 | int readUByte();
25 |
26 | int readUIntx();
27 |
28 | long readULeb128();
29 |
30 | int readUShortx();
31 |
32 | void skip(int i);
33 | }
34 |
--------------------------------------------------------------------------------
/java/com/googlecode/dex2jar/reader/io/DataOut.java:
--------------------------------------------------------------------------------
1 | package com.googlecode.dex2jar.reader.io;
2 |
3 | import java.io.IOException;
4 |
5 | public interface DataOut {
6 | void writeByte(int i) throws IOException;
7 |
8 | void writeBytes(byte[] bArr) throws IOException;
9 |
10 | void writeInt(int i) throws IOException;
11 |
12 | void writeShort(int i) throws IOException;
13 | }
14 |
--------------------------------------------------------------------------------
/java/com/googlecode/dex2jar/reader/io/LeDataOut.java:
--------------------------------------------------------------------------------
1 | package com.googlecode.dex2jar.reader.io;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 |
6 | public class LeDataOut implements DataOut {
7 | private OutputStream os;
8 |
9 | public LeDataOut(OutputStream os) {
10 | this.os = os;
11 | }
12 |
13 | public void writeByte(int v) throws IOException {
14 | this.os.write(v);
15 | }
16 |
17 | public void writeBytes(byte[] bs) throws IOException {
18 | this.os.write(bs);
19 | }
20 |
21 | public void writeInt(int v) throws IOException {
22 | this.os.write(v);
23 | this.os.write(v >> 8);
24 | this.os.write(v >> 16);
25 | this.os.write(v >>> 24);
26 | }
27 |
28 | public void writeShort(int v) throws IOException {
29 | this.os.write(v);
30 | this.os.write(v >> 8);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/java/com/mba/proxylight/RequestFilter.java:
--------------------------------------------------------------------------------
1 | package com.mba.proxylight;
2 |
3 | public interface RequestFilter {
4 | boolean filter(Request request);
5 | }
6 |
--------------------------------------------------------------------------------
/java/com/mba/proxylight/Socket.java:
--------------------------------------------------------------------------------
1 | package com.mba.proxylight;
2 |
3 | import java.nio.channels.SocketChannel;
4 |
5 | public class Socket {
6 | public long created = System.currentTimeMillis();
7 | public long lastRead = this.created;
8 | public long lastWrite = this.created;
9 | public SocketChannel socket = null;
10 | }
11 |
--------------------------------------------------------------------------------
/java/kellinwood/logging/ConsoleLoggerFactory.java:
--------------------------------------------------------------------------------
1 | package kellinwood.logging;
2 |
3 | public class ConsoleLoggerFactory implements LoggerFactory {
4 | public LoggerInterface getLogger(String category) {
5 | return new StreamLogger(category, System.out);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/java/kellinwood/logging/LoggerFactory.java:
--------------------------------------------------------------------------------
1 | package kellinwood.logging;
2 |
3 | public interface LoggerFactory {
4 | LoggerInterface getLogger(String str);
5 | }
6 |
--------------------------------------------------------------------------------
/java/kellinwood/logging/LoggerInterface.java:
--------------------------------------------------------------------------------
1 | package kellinwood.logging;
2 |
3 | public interface LoggerInterface {
4 | public static final String DEBUG = "DEBUG";
5 | public static final String ERROR = "ERROR";
6 | public static final String INFO = "INFO";
7 | public static final String WARNING = "WARNING";
8 |
9 | void debug(String str);
10 |
11 | void debug(String str, Throwable th);
12 |
13 | void error(String str);
14 |
15 | void error(String str, Throwable th);
16 |
17 | void info(String str);
18 |
19 | void info(String str, Throwable th);
20 |
21 | boolean isDebugEnabled();
22 |
23 | boolean isErrorEnabled();
24 |
25 | boolean isInfoEnabled();
26 |
27 | boolean isWarningEnabled();
28 |
29 | void warning(String str);
30 |
31 | void warning(String str, Throwable th);
32 | }
33 |
--------------------------------------------------------------------------------
/java/kellinwood/logging/LoggerManager.java:
--------------------------------------------------------------------------------
1 | package kellinwood.logging;
2 |
3 | import java.util.Map;
4 | import java.util.TreeMap;
5 |
6 | public class LoggerManager {
7 | static LoggerFactory factory = new NullLoggerFactory();
8 | static Map loggers = new TreeMap();
9 |
10 | public static void setLoggerFactory(LoggerFactory f) {
11 | factory = f;
12 | }
13 |
14 | public static LoggerInterface getLogger(String category) {
15 | LoggerInterface logger = (LoggerInterface) loggers.get(category);
16 | if (logger != null) {
17 | return logger;
18 | }
19 | logger = factory.getLogger(category);
20 | loggers.put(category, logger);
21 | return logger;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/java/kellinwood/logging/NullLoggerFactory.java:
--------------------------------------------------------------------------------
1 | package kellinwood.logging;
2 |
3 | public class NullLoggerFactory implements LoggerFactory {
4 | static LoggerInterface logger = new LoggerInterface() {
5 | public void debug(String message) {
6 | }
7 |
8 | public void debug(String message, Throwable t) {
9 | }
10 |
11 | public void error(String message) {
12 | }
13 |
14 | public void error(String message, Throwable t) {
15 | }
16 |
17 | public void info(String message) {
18 | }
19 |
20 | public void info(String message, Throwable t) {
21 | }
22 |
23 | public boolean isDebugEnabled() {
24 | return false;
25 | }
26 |
27 | public boolean isErrorEnabled() {
28 | return false;
29 | }
30 |
31 | public boolean isInfoEnabled() {
32 | return false;
33 | }
34 |
35 | public boolean isWarningEnabled() {
36 | return false;
37 | }
38 |
39 | public void warning(String message) {
40 | }
41 |
42 | public void warning(String message, Throwable t) {
43 | }
44 | };
45 |
46 | public LoggerInterface getLogger(String category) {
47 | return logger;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/java/kellinwood/logging/StreamLogger.java:
--------------------------------------------------------------------------------
1 | package kellinwood.logging;
2 |
3 | import java.io.PrintStream;
4 |
5 | public class StreamLogger extends AbstractLogger {
6 | PrintStream out;
7 |
8 | public StreamLogger(String category, PrintStream out) {
9 | super(category);
10 | this.out = out;
11 | }
12 |
13 | protected void write(String level, String message, Throwable t) {
14 | this.out.print(format(level, message));
15 | if (t != null) {
16 | t.printStackTrace(this.out);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/java/kellinwood/logging/android/AndroidLoggerFactory.java:
--------------------------------------------------------------------------------
1 | package kellinwood.logging.android;
2 |
3 | import kellinwood.logging.LoggerFactory;
4 | import kellinwood.logging.LoggerInterface;
5 |
6 | public class AndroidLoggerFactory implements LoggerFactory {
7 | public LoggerInterface getLogger(String category) {
8 | return new AndroidLogger(category);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/java/kellinwood/logging/log4j/Log4jLoggerFactory.java:
--------------------------------------------------------------------------------
1 | package kellinwood.logging.log4j;
2 |
3 | import kellinwood.logging.LoggerFactory;
4 | import kellinwood.logging.LoggerInterface;
5 |
6 | public class Log4jLoggerFactory implements LoggerFactory {
7 | public LoggerInterface getLogger(String category) {
8 | return new Log4jLogger(category);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/java/kellinwood/security/zipsigner/AutoKeyException.java:
--------------------------------------------------------------------------------
1 | package kellinwood.security.zipsigner;
2 |
3 | public class AutoKeyException extends RuntimeException {
4 | private static final long serialVersionUID = 1;
5 |
6 | public AutoKeyException(String message) {
7 | super(message);
8 | }
9 |
10 | public AutoKeyException(String message, Throwable cause) {
11 | super(message, cause);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/java/kellinwood/security/zipsigner/ProgressEvent.java:
--------------------------------------------------------------------------------
1 | package kellinwood.security.zipsigner;
2 |
3 | public class ProgressEvent {
4 | public static final int PRORITY_IMPORTANT = 1;
5 | public static final int PRORITY_NORMAL = 0;
6 | private String message;
7 | private int percentDone;
8 | private int priority;
9 |
10 | public String getMessage() {
11 | return this.message;
12 | }
13 |
14 | public void setMessage(String message) {
15 | this.message = message;
16 | }
17 |
18 | public int getPercentDone() {
19 | return this.percentDone;
20 | }
21 |
22 | public void setPercentDone(int percentDone) {
23 | this.percentDone = percentDone;
24 | }
25 |
26 | public int getPriority() {
27 | return this.priority;
28 | }
29 |
30 | public void setPriority(int priority) {
31 | this.priority = priority;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/java/kellinwood/security/zipsigner/ProgressListener.java:
--------------------------------------------------------------------------------
1 | package kellinwood.security.zipsigner;
2 |
3 | public interface ProgressListener {
4 | void onProgress(ProgressEvent progressEvent);
5 | }
6 |
--------------------------------------------------------------------------------
/java/kellinwood/security/zipsigner/ResourceAdapter.java:
--------------------------------------------------------------------------------
1 | package kellinwood.security.zipsigner;
2 |
3 | public interface ResourceAdapter {
4 |
5 | public enum Item {
6 | INPUT_SAME_AS_OUTPUT_ERROR,
7 | AUTO_KEY_SELECTION_ERROR,
8 | LOADING_CERTIFICATE_AND_KEY,
9 | PARSING_CENTRAL_DIRECTORY,
10 | GENERATING_MANIFEST,
11 | GENERATING_SIGNATURE_FILE,
12 | GENERATING_SIGNATURE_BLOCK,
13 | COPYING_ZIP_ENTRY
14 | }
15 |
16 | String getString(Item item, Object... objArr);
17 | }
18 |
--------------------------------------------------------------------------------
/java/kellinwood/security/zipsigner/optional/CustomKeySigner.java:
--------------------------------------------------------------------------------
1 | package kellinwood.security.zipsigner.optional;
2 |
3 | import java.security.KeyStore;
4 | import java.security.PrivateKey;
5 | import java.security.cert.X509Certificate;
6 | import kellinwood.security.zipsigner.ZipSigner;
7 |
8 | public class CustomKeySigner {
9 | public static void signZip(ZipSigner zipSigner, String keystorePath, char[] keystorePw, String certAlias, char[] certPw, String signatureAlgorithm, String inputZipFilename, String outputZipFilename) throws Exception {
10 | zipSigner.issueLoadingCertAndKeysProgressEvent();
11 | KeyStore keystore = KeyStoreFileManager.loadKeyStore(keystorePath, keystorePw);
12 | ZipSigner zipSigner2 = zipSigner;
13 | zipSigner2.setKeys("custom", (X509Certificate) keystore.getCertificate(certAlias), (PrivateKey) keystore.getKey(certAlias, certPw), signatureAlgorithm, null);
14 | zipSigner.signZip(inputZipFilename, outputZipFilename);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/java/kellinwood/security/zipsigner/optional/JksKeyStore.java:
--------------------------------------------------------------------------------
1 | package kellinwood.security.zipsigner.optional;
2 |
3 | import java.security.KeyStore;
4 |
5 | public class JksKeyStore extends KeyStore {
6 | public JksKeyStore() {
7 | super(new JKS(), KeyStoreFileManager.getProvider(), "jks");
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/java/kellinwood/security/zipsigner/optional/KeyNameConflictException.java:
--------------------------------------------------------------------------------
1 | package kellinwood.security.zipsigner.optional;
2 |
3 | public class KeyNameConflictException extends Exception {
4 | }
5 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/crypto/IDecrypter.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.crypto;
2 |
3 | import net.lingala.zip4j.exception.ZipException;
4 |
5 | public interface IDecrypter {
6 | int decryptData(byte[] bArr) throws ZipException;
7 |
8 | int decryptData(byte[] bArr, int i, int i2) throws ZipException;
9 | }
10 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/crypto/IEncrypter.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.crypto;
2 |
3 | import net.lingala.zip4j.exception.ZipException;
4 |
5 | public interface IEncrypter {
6 | int encryptData(byte[] bArr) throws ZipException;
7 |
8 | int encryptData(byte[] bArr, int i, int i2) throws ZipException;
9 | }
10 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/crypto/PBKDF2/PBKDF2HexFormatter.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.crypto.PBKDF2;
2 |
3 | class PBKDF2HexFormatter {
4 | PBKDF2HexFormatter() {
5 | }
6 |
7 | public boolean fromString(PBKDF2Parameters p, String s) {
8 | if (p == null || s == null) {
9 | return true;
10 | }
11 | String[] p123 = s.split(":");
12 | if (p123 == null || p123.length != 3) {
13 | return true;
14 | }
15 | byte[] salt = BinTools.hex2bin(p123[0]);
16 | int iterationCount = Integer.parseInt(p123[1]);
17 | byte[] bDK = BinTools.hex2bin(p123[2]);
18 | p.setSalt(salt);
19 | p.setIterationCount(iterationCount);
20 | p.setDerivedKey(bDK);
21 | return false;
22 | }
23 |
24 | public String toString(PBKDF2Parameters p) {
25 | return new StringBuilder(String.valueOf(BinTools.bin2hex(p.getSalt()))).append(":").append(String.valueOf(p.getIterationCount())).append(":").append(BinTools.bin2hex(p.getDerivedKey())).toString();
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/crypto/PBKDF2/PRF.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.crypto.PBKDF2;
2 |
3 | interface PRF {
4 | byte[] doFinal(byte[] bArr);
5 |
6 | int getHLen();
7 |
8 | void init(byte[] bArr);
9 | }
10 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/exception/ZipException.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.exception;
2 |
3 | public class ZipException extends Exception {
4 | private static final long serialVersionUID = 1;
5 | private int code = -1;
6 |
7 | public ZipException(String msg) {
8 | super(msg);
9 | }
10 |
11 | public ZipException(String message, Throwable cause) {
12 | super(message, cause);
13 | }
14 |
15 | public ZipException(String msg, int code) {
16 | super(msg);
17 | this.code = code;
18 | }
19 |
20 | public ZipException(String message, Throwable cause, int code) {
21 | super(message, cause);
22 | this.code = code;
23 | }
24 |
25 | public ZipException(Throwable cause) {
26 | super(cause);
27 | }
28 |
29 | public ZipException(Throwable cause, int code) {
30 | super(cause);
31 | this.code = code;
32 | }
33 |
34 | public int getCode() {
35 | return this.code;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/exception/ZipExceptionConstants.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.exception;
2 |
3 | public interface ZipExceptionConstants {
4 | public static final int WRONG_PASSWORD = 5;
5 | public static final int constuctorFileNotFoundException = 2;
6 | public static final int inputZipParamIsNull = 1;
7 | public static final int notZipFile = 4;
8 | public static final int randomAccessFileNull = 3;
9 | }
10 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/io/BaseInputStream.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.io;
2 |
3 | import java.io.IOException;
4 | import java.io.InputStream;
5 | import net.lingala.zip4j.unzip.UnzipEngine;
6 |
7 | public abstract class BaseInputStream extends InputStream {
8 | public int read() throws IOException {
9 | return 0;
10 | }
11 |
12 | public void seek(long pos) throws IOException {
13 | }
14 |
15 | public int available() throws IOException {
16 | return 0;
17 | }
18 |
19 | public UnzipEngine getUnzipEngine() {
20 | return null;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/io/BaseOutputStream.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.io;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 |
6 | public abstract class BaseOutputStream extends OutputStream {
7 | public void write(int b) throws IOException {
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/io/ZipOutputStream.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.io;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 | import net.lingala.zip4j.model.ZipModel;
6 |
7 | public class ZipOutputStream extends DeflaterOutputStream {
8 | public ZipOutputStream(OutputStream outputStream) {
9 | this(outputStream, null);
10 | }
11 |
12 | public ZipOutputStream(OutputStream outputStream, ZipModel zipModel) {
13 | super(outputStream, zipModel);
14 | }
15 |
16 | public void write(int bval) throws IOException {
17 | write(new byte[]{(byte) bval}, 0, 1);
18 | }
19 |
20 | public void write(byte[] b) throws IOException {
21 | write(b, 0, b.length);
22 | }
23 |
24 | public void write(byte[] b, int off, int len) throws IOException {
25 | this.crc.update(b, off, len);
26 | updateTotalBytesRead(len);
27 | super.write(b, off, len);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/model/ArchiveExtraDataRecord.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.model;
2 |
3 | public class ArchiveExtraDataRecord {
4 | private String extraFieldData;
5 | private int extraFieldLength;
6 | private int signature;
7 |
8 | public int getSignature() {
9 | return this.signature;
10 | }
11 |
12 | public void setSignature(int signature) {
13 | this.signature = signature;
14 | }
15 |
16 | public int getExtraFieldLength() {
17 | return this.extraFieldLength;
18 | }
19 |
20 | public void setExtraFieldLength(int extraFieldLength) {
21 | this.extraFieldLength = extraFieldLength;
22 | }
23 |
24 | public String getExtraFieldData() {
25 | return this.extraFieldData;
26 | }
27 |
28 | public void setExtraFieldData(String extraFieldData) {
29 | this.extraFieldData = extraFieldData;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/model/CentralDirectory.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.model;
2 |
3 | import java.util.ArrayList;
4 |
5 | public class CentralDirectory {
6 | private DigitalSignature digitalSignature;
7 | private ArrayList fileHeaders;
8 |
9 | public ArrayList getFileHeaders() {
10 | return this.fileHeaders;
11 | }
12 |
13 | public void setFileHeaders(ArrayList fileHeaders) {
14 | this.fileHeaders = fileHeaders;
15 | }
16 |
17 | public DigitalSignature getDigitalSignature() {
18 | return this.digitalSignature;
19 | }
20 |
21 | public void setDigitalSignature(DigitalSignature digitalSignature) {
22 | this.digitalSignature = digitalSignature;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/model/DataDescriptor.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.model;
2 |
3 | public class DataDescriptor {
4 | private int compressedSize;
5 | private String crc32;
6 | private int uncompressedSize;
7 |
8 | public String getCrc32() {
9 | return this.crc32;
10 | }
11 |
12 | public void setCrc32(String crc32) {
13 | this.crc32 = crc32;
14 | }
15 |
16 | public int getCompressedSize() {
17 | return this.compressedSize;
18 | }
19 |
20 | public void setCompressedSize(int compressedSize) {
21 | this.compressedSize = compressedSize;
22 | }
23 |
24 | public int getUncompressedSize() {
25 | return this.uncompressedSize;
26 | }
27 |
28 | public void setUncompressedSize(int uncompressedSize) {
29 | this.uncompressedSize = uncompressedSize;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/model/DigitalSignature.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.model;
2 |
3 | public class DigitalSignature {
4 | private int headerSignature;
5 | private String signatureData;
6 | private int sizeOfData;
7 |
8 | public int getHeaderSignature() {
9 | return this.headerSignature;
10 | }
11 |
12 | public void setHeaderSignature(int headerSignature) {
13 | this.headerSignature = headerSignature;
14 | }
15 |
16 | public int getSizeOfData() {
17 | return this.sizeOfData;
18 | }
19 |
20 | public void setSizeOfData(int sizeOfData) {
21 | this.sizeOfData = sizeOfData;
22 | }
23 |
24 | public String getSignatureData() {
25 | return this.signatureData;
26 | }
27 |
28 | public void setSignatureData(String signatureData) {
29 | this.signatureData = signatureData;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/model/ExtraDataRecord.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.model;
2 |
3 | public class ExtraDataRecord {
4 | private byte[] data;
5 | private long header;
6 | private int sizeOfData;
7 |
8 | public long getHeader() {
9 | return this.header;
10 | }
11 |
12 | public void setHeader(long header) {
13 | this.header = header;
14 | }
15 |
16 | public int getSizeOfData() {
17 | return this.sizeOfData;
18 | }
19 |
20 | public void setSizeOfData(int sizeOfData) {
21 | this.sizeOfData = sizeOfData;
22 | }
23 |
24 | public byte[] getData() {
25 | return this.data;
26 | }
27 |
28 | public void setData(byte[] data) {
29 | this.data = data;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/model/Zip64EndCentralDirLocator.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.model;
2 |
3 | public class Zip64EndCentralDirLocator {
4 | private int noOfDiskStartOfZip64EndOfCentralDirRec;
5 | private long offsetZip64EndOfCentralDirRec;
6 | private long signature;
7 | private int totNumberOfDiscs;
8 |
9 | public long getSignature() {
10 | return this.signature;
11 | }
12 |
13 | public void setSignature(long signature) {
14 | this.signature = signature;
15 | }
16 |
17 | public int getNoOfDiskStartOfZip64EndOfCentralDirRec() {
18 | return this.noOfDiskStartOfZip64EndOfCentralDirRec;
19 | }
20 |
21 | public void setNoOfDiskStartOfZip64EndOfCentralDirRec(int noOfDiskStartOfZip64EndOfCentralDirRec) {
22 | this.noOfDiskStartOfZip64EndOfCentralDirRec = noOfDiskStartOfZip64EndOfCentralDirRec;
23 | }
24 |
25 | public long getOffsetZip64EndOfCentralDirRec() {
26 | return this.offsetZip64EndOfCentralDirRec;
27 | }
28 |
29 | public void setOffsetZip64EndOfCentralDirRec(long offsetZip64EndOfCentralDirRec) {
30 | this.offsetZip64EndOfCentralDirRec = offsetZip64EndOfCentralDirRec;
31 | }
32 |
33 | public int getTotNumberOfDiscs() {
34 | return this.totNumberOfDiscs;
35 | }
36 |
37 | public void setTotNumberOfDiscs(int totNumberOfDiscs) {
38 | this.totNumberOfDiscs = totNumberOfDiscs;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/java/net/lingala/zip4j/util/Zip4jConstants.java:
--------------------------------------------------------------------------------
1 | package net.lingala.zip4j.util;
2 |
3 | public interface Zip4jConstants {
4 | public static final int AES_STRENGTH_128 = 1;
5 | public static final int AES_STRENGTH_192 = 2;
6 | public static final int AES_STRENGTH_256 = 3;
7 | public static final int COMP_AES_ENC = 99;
8 | public static final int COMP_DEFLATE = 8;
9 | public static final int COMP_STORE = 0;
10 | public static final int DEFLATE_LEVEL_FAST = 3;
11 | public static final int DEFLATE_LEVEL_FASTEST = 1;
12 | public static final int DEFLATE_LEVEL_MAXIMUM = 7;
13 | public static final int DEFLATE_LEVEL_NORMAL = 5;
14 | public static final int DEFLATE_LEVEL_ULTRA = 9;
15 | public static final int ENC_METHOD_AES = 99;
16 | public static final int ENC_METHOD_STANDARD = 0;
17 | public static final int ENC_NO_ENCRYPTION = -1;
18 | }
19 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/ARMOptions.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.InputStream;
4 | import org.tukaani.xz.simple.ARM;
5 |
6 | public class ARMOptions extends BCJOptions {
7 | private static final int ALIGNMENT = 4;
8 |
9 | public /* bridge */ /* synthetic */ Object clone() {
10 | return super.clone();
11 | }
12 |
13 | public /* bridge */ /* synthetic */ int getDecoderMemoryUsage() {
14 | return super.getDecoderMemoryUsage();
15 | }
16 |
17 | public /* bridge */ /* synthetic */ int getEncoderMemoryUsage() {
18 | return super.getEncoderMemoryUsage();
19 | }
20 |
21 | public /* bridge */ /* synthetic */ int getStartOffset() {
22 | return super.getStartOffset();
23 | }
24 |
25 | public /* bridge */ /* synthetic */ void setStartOffset(int i) throws UnsupportedOptionsException {
26 | super.setStartOffset(i);
27 | }
28 |
29 | public ARMOptions() {
30 | super(ALIGNMENT);
31 | }
32 |
33 | public FinishableOutputStream getOutputStream(FinishableOutputStream out) {
34 | return new SimpleOutputStream(out, new ARM(true, this.startOffset));
35 | }
36 |
37 | public InputStream getInputStream(InputStream in) {
38 | return new SimpleInputStream(in, new ARM(false, this.startOffset));
39 | }
40 |
41 | FilterEncoder getFilterEncoder() {
42 | return new BCJEncoder(this, 7);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/BCJCoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | abstract class BCJCoder implements FilterCoder {
4 | public static final long ARMTHUMB_FILTER_ID = 8;
5 | public static final long ARM_FILTER_ID = 7;
6 | public static final long IA64_FILTER_ID = 6;
7 | public static final long POWERPC_FILTER_ID = 5;
8 | public static final long SPARC_FILTER_ID = 9;
9 | public static final long X86_FILTER_ID = 4;
10 |
11 | BCJCoder() {
12 | }
13 |
14 | public static boolean isBCJFilterID(long filterID) {
15 | return filterID >= X86_FILTER_ID && filterID <= SPARC_FILTER_ID;
16 | }
17 |
18 | public boolean changesSize() {
19 | return false;
20 | }
21 |
22 | public boolean nonLastOK() {
23 | return true;
24 | }
25 |
26 | public boolean lastOK() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/BCJOptions.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | abstract class BCJOptions extends FilterOptions {
4 | static final /* synthetic */ boolean $assertionsDisabled = (!BCJOptions.class.desiredAssertionStatus());
5 | private final int alignment;
6 | int startOffset = 0;
7 |
8 | BCJOptions(int alignment) {
9 | this.alignment = alignment;
10 | }
11 |
12 | public void setStartOffset(int startOffset) throws UnsupportedOptionsException {
13 | if (((this.alignment - 1) & startOffset) != 0) {
14 | throw new UnsupportedOptionsException("Start offset must be a multiple of " + this.alignment);
15 | }
16 | this.startOffset = startOffset;
17 | }
18 |
19 | public int getStartOffset() {
20 | return this.startOffset;
21 | }
22 |
23 | public int getEncoderMemoryUsage() {
24 | return SimpleOutputStream.getMemoryUsage();
25 | }
26 |
27 | public int getDecoderMemoryUsage() {
28 | return SimpleInputStream.getMemoryUsage();
29 | }
30 |
31 | public Object clone() {
32 | try {
33 | return super.clone();
34 | } catch (CloneNotSupportedException e) {
35 | if ($assertionsDisabled) {
36 | throw new RuntimeException();
37 | }
38 | throw new AssertionError();
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/CorruptedInputException.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | public class CorruptedInputException extends XZIOException {
4 | private static final long serialVersionUID = 3;
5 |
6 | public CorruptedInputException() {
7 | super("Compressed data is corrupt");
8 | }
9 |
10 | public CorruptedInputException(String s) {
11 | super(s);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/CountingInputStream.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.FilterInputStream;
4 | import java.io.IOException;
5 | import java.io.InputStream;
6 |
7 | class CountingInputStream extends FilterInputStream {
8 | private long size = 0;
9 |
10 | public CountingInputStream(InputStream in) {
11 | super(in);
12 | }
13 |
14 | public int read() throws IOException {
15 | int ret = this.in.read();
16 | if (ret != -1 && this.size >= 0) {
17 | this.size++;
18 | }
19 | return ret;
20 | }
21 |
22 | public int read(byte[] b, int off, int len) throws IOException {
23 | int ret = this.in.read(b, off, len);
24 | if (ret > 0 && this.size >= 0) {
25 | this.size += (long) ret;
26 | }
27 | return ret;
28 | }
29 |
30 | public long getSize() {
31 | return this.size;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/CountingOutputStream.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 |
6 | class CountingOutputStream extends FinishableOutputStream {
7 | private final OutputStream out;
8 | private long size = 0;
9 |
10 | public CountingOutputStream(OutputStream out) {
11 | this.out = out;
12 | }
13 |
14 | public void write(int b) throws IOException {
15 | this.out.write(b);
16 | if (this.size >= 0) {
17 | this.size++;
18 | }
19 | }
20 |
21 | public void write(byte[] b, int off, int len) throws IOException {
22 | this.out.write(b, off, len);
23 | if (this.size >= 0) {
24 | this.size += (long) len;
25 | }
26 | }
27 |
28 | public void flush() throws IOException {
29 | this.out.flush();
30 | }
31 |
32 | public void close() throws IOException {
33 | this.out.close();
34 | }
35 |
36 | public long getSize() {
37 | return this.size;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/DeltaCoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | abstract class DeltaCoder implements FilterCoder {
4 | public static final long FILTER_ID = 3;
5 |
6 | DeltaCoder() {
7 | }
8 |
9 | public boolean changesSize() {
10 | return false;
11 | }
12 |
13 | public boolean nonLastOK() {
14 | return true;
15 | }
16 |
17 | public boolean lastOK() {
18 | return false;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/DeltaDecoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.InputStream;
4 |
5 | class DeltaDecoder extends DeltaCoder implements FilterDecoder {
6 | private final int distance;
7 |
8 | DeltaDecoder(byte[] props) throws UnsupportedOptionsException {
9 | if (props.length != 1) {
10 | throw new UnsupportedOptionsException("Unsupported Delta filter properties");
11 | }
12 | this.distance = (props[0] & 255) + 1;
13 | }
14 |
15 | public int getMemoryUsage() {
16 | return 1;
17 | }
18 |
19 | public InputStream getInputStream(InputStream in) {
20 | return new DeltaInputStream(in, this.distance);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/DeltaEncoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | class DeltaEncoder extends DeltaCoder implements FilterEncoder {
4 | private final DeltaOptions options;
5 | private final byte[] props = new byte[1];
6 |
7 | DeltaEncoder(DeltaOptions options) {
8 | this.props[0] = (byte) (options.getDistance() - 1);
9 | this.options = (DeltaOptions) options.clone();
10 | }
11 |
12 | public long getFilterID() {
13 | return 3;
14 | }
15 |
16 | public byte[] getFilterProps() {
17 | return this.props;
18 | }
19 |
20 | public boolean supportsFlushing() {
21 | return true;
22 | }
23 |
24 | public FinishableOutputStream getOutputStream(FinishableOutputStream out) {
25 | return this.options.getOutputStream(out);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/FilterCoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | interface FilterCoder {
4 | boolean changesSize();
5 |
6 | boolean lastOK();
7 |
8 | boolean nonLastOK();
9 | }
10 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/FilterDecoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.InputStream;
4 |
5 | interface FilterDecoder extends FilterCoder {
6 | InputStream getInputStream(InputStream inputStream);
7 |
8 | int getMemoryUsage();
9 | }
10 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/FilterEncoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | interface FilterEncoder extends FilterCoder {
4 | long getFilterID();
5 |
6 | byte[] getFilterProps();
7 |
8 | FinishableOutputStream getOutputStream(FinishableOutputStream finishableOutputStream);
9 |
10 | boolean supportsFlushing();
11 | }
12 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/FilterOptions.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.IOException;
4 | import java.io.InputStream;
5 |
6 | public abstract class FilterOptions implements Cloneable {
7 | public abstract int getDecoderMemoryUsage();
8 |
9 | public abstract int getEncoderMemoryUsage();
10 |
11 | abstract FilterEncoder getFilterEncoder();
12 |
13 | public abstract InputStream getInputStream(InputStream inputStream) throws IOException;
14 |
15 | public abstract FinishableOutputStream getOutputStream(FinishableOutputStream finishableOutputStream);
16 |
17 | public static int getEncoderMemoryUsage(FilterOptions[] options) {
18 | int m = 0;
19 | for (FilterOptions encoderMemoryUsage : options) {
20 | m += encoderMemoryUsage.getEncoderMemoryUsage();
21 | }
22 | return m;
23 | }
24 |
25 | public static int getDecoderMemoryUsage(FilterOptions[] options) {
26 | int m = 0;
27 | for (FilterOptions decoderMemoryUsage : options) {
28 | m += decoderMemoryUsage.getDecoderMemoryUsage();
29 | }
30 | return m;
31 | }
32 |
33 | FilterOptions() {
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/FinishableOutputStream.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 |
6 | public abstract class FinishableOutputStream extends OutputStream {
7 | public void finish() throws IOException {
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/FinishableWrapperOutputStream.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 |
6 | public class FinishableWrapperOutputStream extends FinishableOutputStream {
7 | protected OutputStream out;
8 |
9 | public FinishableWrapperOutputStream(OutputStream out) {
10 | this.out = out;
11 | }
12 |
13 | public void write(int b) throws IOException {
14 | this.out.write(b);
15 | }
16 |
17 | public void write(byte[] buf) throws IOException {
18 | this.out.write(buf);
19 | }
20 |
21 | public void write(byte[] buf, int off, int len) throws IOException {
22 | this.out.write(buf, off, len);
23 | }
24 |
25 | public void flush() throws IOException {
26 | this.out.flush();
27 | }
28 |
29 | public void close() throws IOException {
30 | this.out.close();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/IndexIndicatorException.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | class IndexIndicatorException extends Exception {
4 | private static final long serialVersionUID = 1;
5 |
6 | IndexIndicatorException() {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/LZMA2Coder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | abstract class LZMA2Coder implements FilterCoder {
4 | public static final long FILTER_ID = 33;
5 |
6 | LZMA2Coder() {
7 | }
8 |
9 | public boolean changesSize() {
10 | return true;
11 | }
12 |
13 | public boolean nonLastOK() {
14 | return false;
15 | }
16 |
17 | public boolean lastOK() {
18 | return true;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/LZMA2Decoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.InputStream;
4 |
5 | class LZMA2Decoder extends LZMA2Coder implements FilterDecoder {
6 | private int dictSize;
7 |
8 | LZMA2Decoder(byte[] props) throws UnsupportedOptionsException {
9 | if (props.length != 1 || (props[0] & 255) > 37) {
10 | throw new UnsupportedOptionsException("Unsupported LZMA2 properties");
11 | }
12 | this.dictSize = (props[0] & 1) | 2;
13 | this.dictSize <<= (props[0] >>> 1) + 11;
14 | }
15 |
16 | public int getMemoryUsage() {
17 | return LZMA2InputStream.getMemoryUsage(this.dictSize);
18 | }
19 |
20 | public InputStream getInputStream(InputStream in) {
21 | return new LZMA2InputStream(in, this.dictSize);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/LZMA2Encoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import org.tukaani.xz.lzma.LZMAEncoder;
4 |
5 | class LZMA2Encoder extends LZMA2Coder implements FilterEncoder {
6 | private final LZMA2Options options;
7 | private final byte[] props = new byte[1];
8 |
9 | LZMA2Encoder(LZMA2Options options) {
10 | if (options.getPresetDict() != null) {
11 | throw new IllegalArgumentException("XZ doesn't support a preset dictionary for now");
12 | }
13 | if (options.getMode() == 0) {
14 | this.props[0] = (byte) 0;
15 | } else {
16 | this.props[0] = (byte) (LZMAEncoder.getDistSlot(Math.max(options.getDictSize(), LZMA2Options.DICT_SIZE_MIN) - 1) - 23);
17 | }
18 | this.options = (LZMA2Options) options.clone();
19 | }
20 |
21 | public long getFilterID() {
22 | return 33;
23 | }
24 |
25 | public byte[] getFilterProps() {
26 | return this.props;
27 | }
28 |
29 | public boolean supportsFlushing() {
30 | return true;
31 | }
32 |
33 | public FinishableOutputStream getOutputStream(FinishableOutputStream out) {
34 | return this.options.getOutputStream(out);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/MemoryLimitException.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | public class MemoryLimitException extends XZIOException {
4 | private static final long serialVersionUID = 3;
5 | private final int memoryLimit;
6 | private final int memoryNeeded;
7 |
8 | public MemoryLimitException(int memoryNeeded, int memoryLimit) {
9 | super(memoryNeeded + " KiB of memory would be needed; limit was " + memoryLimit + " KiB");
10 | this.memoryNeeded = memoryNeeded;
11 | this.memoryLimit = memoryLimit;
12 | }
13 |
14 | public int getMemoryNeeded() {
15 | return this.memoryNeeded;
16 | }
17 |
18 | public int getMemoryLimit() {
19 | return this.memoryLimit;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/RawCoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | class RawCoder {
4 | RawCoder() {
5 | }
6 |
7 | static void validate(FilterCoder[] filters) throws UnsupportedOptionsException {
8 | int i = 0;
9 | while (i < filters.length - 1) {
10 | if (filters[i].nonLastOK()) {
11 | i++;
12 | } else {
13 | throw new UnsupportedOptionsException("Unsupported XZ filter chain");
14 | }
15 | }
16 | if (filters[filters.length - 1].lastOK()) {
17 | int changesSizeCount = 0;
18 | for (FilterCoder changesSize : filters) {
19 | if (changesSize.changesSize()) {
20 | changesSizeCount++;
21 | }
22 | }
23 | if (changesSizeCount > 3) {
24 | throw new UnsupportedOptionsException("Unsupported XZ filter chain");
25 | }
26 | return;
27 | }
28 | throw new UnsupportedOptionsException("Unsupported XZ filter chain");
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/SeekableInputStream.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.IOException;
4 | import java.io.InputStream;
5 |
6 | public abstract class SeekableInputStream extends InputStream {
7 | public abstract long length() throws IOException;
8 |
9 | public abstract long position() throws IOException;
10 |
11 | public abstract void seek(long j) throws IOException;
12 |
13 | public long skip(long n) throws IOException {
14 | if (n <= 0) {
15 | return 0;
16 | }
17 | long size = length();
18 | long pos = position();
19 | if (pos >= size) {
20 | return 0;
21 | }
22 | if (size - pos < n) {
23 | n = size - pos;
24 | }
25 | seek(pos + n);
26 | return n;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/UnsupportedOptionsException.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | public class UnsupportedOptionsException extends XZIOException {
4 | private static final long serialVersionUID = 3;
5 |
6 | public UnsupportedOptionsException(String s) {
7 | super(s);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/X86Options.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.InputStream;
4 | import org.tukaani.xz.simple.X86;
5 |
6 | public class X86Options extends BCJOptions {
7 | private static final int ALIGNMENT = 1;
8 |
9 | public /* bridge */ /* synthetic */ Object clone() {
10 | return super.clone();
11 | }
12 |
13 | public /* bridge */ /* synthetic */ int getDecoderMemoryUsage() {
14 | return super.getDecoderMemoryUsage();
15 | }
16 |
17 | public /* bridge */ /* synthetic */ int getEncoderMemoryUsage() {
18 | return super.getEncoderMemoryUsage();
19 | }
20 |
21 | public /* bridge */ /* synthetic */ int getStartOffset() {
22 | return super.getStartOffset();
23 | }
24 |
25 | public /* bridge */ /* synthetic */ void setStartOffset(int i) throws UnsupportedOptionsException {
26 | super.setStartOffset(i);
27 | }
28 |
29 | public X86Options() {
30 | super(ALIGNMENT);
31 | }
32 |
33 | public FinishableOutputStream getOutputStream(FinishableOutputStream out) {
34 | return new SimpleOutputStream(out, new X86(true, this.startOffset));
35 | }
36 |
37 | public InputStream getInputStream(InputStream in) {
38 | return new SimpleInputStream(in, new X86(false, this.startOffset));
39 | }
40 |
41 | FilterEncoder getFilterEncoder() {
42 | return new BCJEncoder(this, 4);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/XZ.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | public class XZ {
4 | public static final int CHECK_CRC32 = 1;
5 | public static final int CHECK_CRC64 = 4;
6 | public static final int CHECK_NONE = 0;
7 | public static final int CHECK_SHA256 = 10;
8 | public static final byte[] FOOTER_MAGIC = new byte[]{(byte) 89, (byte) 90};
9 | public static final byte[] HEADER_MAGIC;
10 |
11 | static {
12 | byte[] bArr = new byte[6];
13 | bArr[CHECK_NONE] = (byte) -3;
14 | bArr[CHECK_CRC32] = (byte) 55;
15 | bArr[2] = (byte) 122;
16 | bArr[3] = (byte) 88;
17 | bArr[CHECK_CRC64] = (byte) 90;
18 | HEADER_MAGIC = bArr;
19 | }
20 |
21 | private XZ() {
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/XZFormatException.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | public class XZFormatException extends XZIOException {
4 | private static final long serialVersionUID = 3;
5 |
6 | public XZFormatException() {
7 | super("Input is not in the XZ format");
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/XZIOException.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 | import java.io.IOException;
4 |
5 | public class XZIOException extends IOException {
6 | private static final long serialVersionUID = 3;
7 |
8 | public XZIOException(String s) {
9 | super(s);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/check/CRC32.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.check;
2 |
3 | public class CRC32 extends Check {
4 | private final java.util.zip.CRC32 state;
5 |
6 | public CRC32() {
7 | this.state = new java.util.zip.CRC32();
8 | this.size = 4;
9 | this.name = "CRC32";
10 | }
11 |
12 | public void update(byte[] buf, int off, int len) {
13 | this.state.update(buf, off, len);
14 | }
15 |
16 | public byte[] finish() {
17 | long value = this.state.getValue();
18 | byte[] buf = new byte[]{(byte) ((int) value), (byte) ((int) (value >>> 8)), (byte) ((int) (value >>> 16)), (byte) ((int) (value >>> 24))};
19 | this.state.reset();
20 | return buf;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/check/None.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.check;
2 |
3 | public class None extends Check {
4 | public None() {
5 | this.size = 0;
6 | this.name = "None";
7 | }
8 |
9 | public void update(byte[] buf, int off, int len) {
10 | }
11 |
12 | public byte[] finish() {
13 | return new byte[0];
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/check/SHA256.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.check;
2 |
3 | import java.security.MessageDigest;
4 | import java.security.NoSuchAlgorithmException;
5 |
6 | public class SHA256 extends Check {
7 | private final MessageDigest sha256;
8 |
9 | public SHA256() throws NoSuchAlgorithmException {
10 | this.size = 32;
11 | this.name = "SHA-256";
12 | this.sha256 = MessageDigest.getInstance("SHA-256");
13 | }
14 |
15 | public void update(byte[] buf, int off, int len) {
16 | this.sha256.update(buf, off, len);
17 | }
18 |
19 | public byte[] finish() {
20 | byte[] buf = this.sha256.digest();
21 | this.sha256.reset();
22 | return buf;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/common/EncoderUtil.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.common;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 | import java.util.zip.CRC32;
6 |
7 | public class EncoderUtil extends Util {
8 | public static void writeCRC32(OutputStream out, byte[] buf) throws IOException {
9 | CRC32 crc32 = new CRC32();
10 | crc32.update(buf);
11 | long value = crc32.getValue();
12 | for (int i = 0; i < 4; i++) {
13 | out.write((byte) ((int) (value >>> (i * 8))));
14 | }
15 | }
16 |
17 | public static void encodeVLI(OutputStream out, long num) throws IOException {
18 | while (num >= 128) {
19 | out.write((byte) ((int) (num | 128)));
20 | num >>>= 7;
21 | }
22 | out.write((byte) ((int) num));
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/common/StreamFlags.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.common;
2 |
3 | public class StreamFlags {
4 | public long backwardSize = -1;
5 | public int checkType = -1;
6 | }
7 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/common/Util.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.common;
2 |
3 | public class Util {
4 | public static final long BACKWARD_SIZE_MAX = 17179869184L;
5 | public static final int BLOCK_HEADER_SIZE_MAX = 1024;
6 | public static final int STREAM_HEADER_SIZE = 12;
7 | public static final long VLI_MAX = Long.MAX_VALUE;
8 | public static final int VLI_SIZE_MAX = 9;
9 |
10 | public static int getVLISize(long num) {
11 | int size = 0;
12 | do {
13 | size++;
14 | num >>= 7;
15 | } while (num != 0);
16 | return size;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/delta/DeltaCoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.delta;
2 |
3 | abstract class DeltaCoder {
4 | static final int DISTANCE_MASK = 255;
5 | static final int DISTANCE_MAX = 256;
6 | static final int DISTANCE_MIN = 1;
7 | final int distance;
8 | final byte[] history = new byte[DISTANCE_MAX];
9 | int pos = 0;
10 |
11 | DeltaCoder(int distance) {
12 | if (distance < DISTANCE_MIN || distance > DISTANCE_MAX) {
13 | throw new IllegalArgumentException();
14 | }
15 | this.distance = distance;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/delta/DeltaDecoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.delta;
2 |
3 | public class DeltaDecoder extends DeltaCoder {
4 | public DeltaDecoder(int distance) {
5 | super(distance);
6 | }
7 |
8 | public void decode(byte[] buf, int off, int len) {
9 | int end = off + len;
10 | for (int i = off; i < end; i++) {
11 | buf[i] = (byte) (buf[i] + this.history[(this.distance + this.pos) & 255]);
12 | byte[] bArr = this.history;
13 | int i2 = this.pos;
14 | this.pos = i2 - 1;
15 | bArr[i2 & 255] = buf[i];
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/delta/DeltaEncoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.delta;
2 |
3 | public class DeltaEncoder extends DeltaCoder {
4 | public DeltaEncoder(int distance) {
5 | super(distance);
6 | }
7 |
8 | public void encode(byte[] in, int in_off, int len, byte[] out) {
9 | for (int i = 0; i < len; i++) {
10 | byte tmp = this.history[(this.distance + this.pos) & 255];
11 | byte[] bArr = this.history;
12 | int i2 = this.pos;
13 | this.pos = i2 - 1;
14 | bArr[i2 & 255] = in[in_off + i];
15 | out[i] = (byte) (in[in_off + i] - tmp);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/index/BlockInfo.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.index;
2 |
3 | public class BlockInfo {
4 | public int blockNumber = -1;
5 | public long compressedOffset = -1;
6 | IndexDecoder index;
7 | public long uncompressedOffset = -1;
8 | public long uncompressedSize = -1;
9 | public long unpaddedSize = -1;
10 |
11 | public BlockInfo(IndexDecoder indexOfFirstStream) {
12 | this.index = indexOfFirstStream;
13 | }
14 |
15 | public int getCheckType() {
16 | return this.index.getStreamFlags().checkType;
17 | }
18 |
19 | public boolean hasNext() {
20 | return this.index.hasRecord(this.blockNumber + 1);
21 | }
22 |
23 | public void setNext() {
24 | this.index.setBlockInfo(this, this.blockNumber + 1);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/index/IndexRecord.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.index;
2 |
3 | class IndexRecord {
4 | final long uncompressed;
5 | final long unpadded;
6 |
7 | IndexRecord(long unpadded, long uncompressed) {
8 | this.unpadded = unpadded;
9 | this.uncompressed = uncompressed;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/lz/CRC32Hash.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.lz;
2 |
3 | import pxb.android.ResConst;
4 |
5 | class CRC32Hash {
6 | private static final int CRC32_POLY = -306674912;
7 | static final int[] crcTable = new int[ResConst.RES_XML_START_NAMESPACE_TYPE];
8 |
9 | CRC32Hash() {
10 | }
11 |
12 | static {
13 | for (int i = 0; i < ResConst.RES_XML_START_NAMESPACE_TYPE; i++) {
14 | int r = i;
15 | for (int j = 0; j < 8; j++) {
16 | if ((r & 1) != 0) {
17 | r = (r >>> 1) ^ CRC32_POLY;
18 | } else {
19 | r >>>= 1;
20 | }
21 | }
22 | crcTable[i] = r;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/lz/Matches.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.lz;
2 |
3 | public final class Matches {
4 | public int count = 0;
5 | public final int[] dist;
6 | public final int[] len;
7 |
8 | Matches(int countMax) {
9 | this.len = new int[countMax];
10 | this.dist = new int[countMax];
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/lzma/Optimum.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.lzma;
2 |
3 | final class Optimum {
4 | private static final int INFINITY_PRICE = 1073741824;
5 | int backPrev;
6 | int backPrev2;
7 | boolean hasPrev2;
8 | int optPrev;
9 | int optPrev2;
10 | boolean prev1IsLiteral;
11 | int price;
12 | final int[] reps = new int[4];
13 | final State state = new State();
14 |
15 | Optimum() {
16 | }
17 |
18 | void reset() {
19 | this.price = INFINITY_PRICE;
20 | }
21 |
22 | void set1(int newPrice, int optCur, int back) {
23 | this.price = newPrice;
24 | this.optPrev = optCur;
25 | this.backPrev = back;
26 | this.prev1IsLiteral = false;
27 | }
28 |
29 | void set2(int newPrice, int optCur, int back) {
30 | this.price = newPrice;
31 | this.optPrev = optCur + 1;
32 | this.backPrev = back;
33 | this.prev1IsLiteral = true;
34 | this.hasPrev2 = false;
35 | }
36 |
37 | void set3(int newPrice, int optCur, int back2, int len2, int back) {
38 | this.price = newPrice;
39 | this.optPrev = (optCur + len2) + 1;
40 | this.backPrev = back;
41 | this.prev1IsLiteral = true;
42 | this.hasPrev2 = true;
43 | this.optPrev2 = optCur;
44 | this.backPrev2 = back2;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/package-info.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz;
2 |
3 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/rangecoder/RangeCoder.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.rangecoder;
2 |
3 | import java.util.Arrays;
4 |
5 | public abstract class RangeCoder {
6 | static final int BIT_MODEL_TOTAL = 2048;
7 | static final int BIT_MODEL_TOTAL_BITS = 11;
8 | static final int MOVE_BITS = 5;
9 | static final short PROB_INIT = (short) 1024;
10 | static final int SHIFT_BITS = 8;
11 | static final int TOP_MASK = -16777216;
12 |
13 | public static final void initProbs(short[] probs) {
14 | Arrays.fill(probs, PROB_INIT);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/rangecoder/RangeDecoderFromStream.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.rangecoder;
2 |
3 | import java.io.DataInputStream;
4 | import java.io.IOException;
5 | import java.io.InputStream;
6 | import org.tukaani.xz.CorruptedInputException;
7 |
8 | public final class RangeDecoderFromStream extends RangeDecoder {
9 | private final DataInputStream inData;
10 |
11 | public RangeDecoderFromStream(InputStream in) throws IOException {
12 | this.inData = new DataInputStream(in);
13 | if (this.inData.readUnsignedByte() != 0) {
14 | throw new CorruptedInputException();
15 | }
16 | this.code = this.inData.readInt();
17 | this.range = -1;
18 | }
19 |
20 | public boolean isFinished() {
21 | return this.code == 0;
22 | }
23 |
24 | public void normalize() throws IOException {
25 | if ((this.range & -16777216) == 0) {
26 | this.code = (this.code << 8) | this.inData.readUnsignedByte();
27 | this.range <<= 8;
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/simple/ARM.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.simple;
2 |
3 | public final class ARM implements SimpleFilter {
4 | private final boolean isEncoder;
5 | private int pos;
6 |
7 | public ARM(boolean isEncoder, int startPos) {
8 | this.isEncoder = isEncoder;
9 | this.pos = startPos + 8;
10 | }
11 |
12 | public int code(byte[] buf, int off, int len) {
13 | int end = (off + len) - 4;
14 | int i = off;
15 | while (i <= end) {
16 | if ((buf[i + 3] & 255) == 235) {
17 | int dest;
18 | int src = ((((buf[i + 2] & 255) << 16) | ((buf[i + 1] & 255) << 8)) | (buf[i] & 255)) << 2;
19 | if (this.isEncoder) {
20 | dest = src + ((this.pos + i) - off);
21 | } else {
22 | dest = src - ((this.pos + i) - off);
23 | }
24 | dest >>>= 2;
25 | buf[i + 2] = (byte) (dest >>> 16);
26 | buf[i + 1] = (byte) (dest >>> 8);
27 | buf[i] = (byte) dest;
28 | }
29 | i += 4;
30 | }
31 | i -= off;
32 | this.pos += i;
33 | return i;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/simple/ARMThumb.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.simple;
2 |
3 | public final class ARMThumb implements SimpleFilter {
4 | private final boolean isEncoder;
5 | private int pos;
6 |
7 | public ARMThumb(boolean isEncoder, int startPos) {
8 | this.isEncoder = isEncoder;
9 | this.pos = startPos + 4;
10 | }
11 |
12 | public int code(byte[] buf, int off, int len) {
13 | int end = (off + len) - 4;
14 | int i = off;
15 | while (i <= end) {
16 | if ((buf[i + 1] & 248) == 240 && (buf[i + 3] & 248) == 248) {
17 | int dest;
18 | int src = (((((buf[i + 1] & 7) << 19) | ((buf[i] & 255) << 11)) | ((buf[i + 3] & 7) << 8)) | (buf[i + 2] & 255)) << 1;
19 | if (this.isEncoder) {
20 | dest = src + ((this.pos + i) - off);
21 | } else {
22 | dest = src - ((this.pos + i) - off);
23 | }
24 | dest >>>= 1;
25 | buf[i + 1] = (byte) (((dest >>> 19) & 7) | 240);
26 | buf[i] = (byte) (dest >>> 11);
27 | buf[i + 3] = (byte) (((dest >>> 8) & 7) | 248);
28 | buf[i + 2] = (byte) dest;
29 | i += 2;
30 | }
31 | i += 2;
32 | }
33 | i -= off;
34 | this.pos += i;
35 | return i;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/simple/PowerPC.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.simple;
2 |
3 | public final class PowerPC implements SimpleFilter {
4 | private final boolean isEncoder;
5 | private int pos;
6 |
7 | public PowerPC(boolean isEncoder, int startPos) {
8 | this.isEncoder = isEncoder;
9 | this.pos = startPos;
10 | }
11 |
12 | public int code(byte[] buf, int off, int len) {
13 | int end = (off + len) - 4;
14 | int i = off;
15 | while (i <= end) {
16 | if ((buf[i] & 252) == 72 && (buf[i + 3] & 3) == 1) {
17 | int dest;
18 | int src = ((((buf[i] & 3) << 24) | ((buf[i + 1] & 255) << 16)) | ((buf[i + 2] & 255) << 8)) | (buf[i + 3] & 252);
19 | if (this.isEncoder) {
20 | dest = src + ((this.pos + i) - off);
21 | } else {
22 | dest = src - ((this.pos + i) - off);
23 | }
24 | buf[i] = (byte) (((dest >>> 24) & 3) | 72);
25 | buf[i + 1] = (byte) (dest >>> 16);
26 | buf[i + 2] = (byte) (dest >>> 8);
27 | buf[i + 3] = (byte) ((buf[i + 3] & 3) | dest);
28 | }
29 | i += 4;
30 | }
31 | i -= off;
32 | this.pos += i;
33 | return i;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/java/org/tukaani/xz/simple/SimpleFilter.java:
--------------------------------------------------------------------------------
1 | package org.tukaani.xz.simple;
2 |
3 | public interface SimpleFilter {
4 | int code(byte[] bArr, int i, int i2);
5 | }
6 |
--------------------------------------------------------------------------------
/java/pxb/android/ResConst.java:
--------------------------------------------------------------------------------
1 | package pxb.android;
2 |
3 | public interface ResConst {
4 | public static final int RES_STRING_POOL_TYPE = 1;
5 | public static final int RES_TABLE_PACKAGE_TYPE = 512;
6 | public static final int RES_TABLE_TYPE = 2;
7 | public static final int RES_TABLE_TYPE_SPEC_TYPE = 514;
8 | public static final int RES_TABLE_TYPE_TYPE = 513;
9 | public static final int RES_XML_CDATA_TYPE = 260;
10 | public static final int RES_XML_END_ELEMENT_TYPE = 259;
11 | public static final int RES_XML_END_NAMESPACE_TYPE = 257;
12 | public static final int RES_XML_RESOURCE_MAP_TYPE = 384;
13 | public static final int RES_XML_START_ELEMENT_TYPE = 258;
14 | public static final int RES_XML_START_NAMESPACE_TYPE = 256;
15 | public static final int RES_XML_TYPE = 3;
16 | }
17 |
--------------------------------------------------------------------------------
/java/pxb/android/StringItem.java:
--------------------------------------------------------------------------------
1 | package pxb.android;
2 |
3 | public class StringItem {
4 | public String data;
5 | public int dataOffset;
6 | public int index;
7 |
8 | public StringItem(String data) {
9 | this.data = data;
10 | }
11 |
12 | public boolean equals(Object obj) {
13 | if (this == obj) {
14 | return true;
15 | }
16 | if (obj == null) {
17 | return false;
18 | }
19 | if (getClass() != obj.getClass()) {
20 | return false;
21 | }
22 | StringItem other = (StringItem) obj;
23 | if (this.data == null) {
24 | if (other.data != null) {
25 | return false;
26 | }
27 | return true;
28 | } else if (this.data.equals(other.data)) {
29 | return true;
30 | } else {
31 | return false;
32 | }
33 | }
34 |
35 | public int hashCode() {
36 | return (this.data == null ? 0 : this.data.hashCode()) + 31;
37 | }
38 |
39 | public String toString() {
40 | return String.format("S%04d %s", new Object[]{Integer.valueOf(this.index), this.data});
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/java/pxb/android/arsc/Config.java:
--------------------------------------------------------------------------------
1 | package pxb.android.arsc;
2 |
3 | import java.util.Map;
4 | import java.util.TreeMap;
5 |
6 | public class Config {
7 | public final int entryCount;
8 | public final byte[] id;
9 | public Map resources = new TreeMap();
10 | int wChunkSize;
11 | int wEntryStart;
12 | int wPosition;
13 |
14 | public Config(byte[] id, int entryCount) {
15 | this.id = id;
16 | this.entryCount = entryCount;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/java/pxb/android/arsc/Pkg.java:
--------------------------------------------------------------------------------
1 | package pxb.android.arsc;
2 |
3 | import java.util.TreeMap;
4 |
5 | public class Pkg {
6 | public final int id;
7 | public String name;
8 | public TreeMap types = new TreeMap();
9 |
10 | public Pkg(int id, String name) {
11 | this.id = id;
12 | this.name = name;
13 | }
14 |
15 | public Type getType(int tid, String name, int entrySize) {
16 | Type type = (Type) this.types.get(Integer.valueOf(tid));
17 | if (type == null) {
18 | type = new Type();
19 | type.id = tid;
20 | type.name = name;
21 | type.specs = new ResSpec[entrySize];
22 | this.types.put(Integer.valueOf(tid), type);
23 | return type;
24 | } else if (name == null) {
25 | return type;
26 | } else {
27 | if (type.name == null) {
28 | type.name = name;
29 | } else if (!name.endsWith(type.name)) {
30 | throw new RuntimeException();
31 | }
32 | if (type.specs.length == entrySize) {
33 | return type;
34 | }
35 | throw new RuntimeException();
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/java/pxb/android/arsc/ResEntry.java:
--------------------------------------------------------------------------------
1 | package pxb.android.arsc;
2 |
3 | public class ResEntry {
4 | public final int flag;
5 | public final ResSpec spec;
6 | public Object value;
7 | int wOffset;
8 |
9 | public ResEntry(int flag, ResSpec spec) {
10 | this.flag = flag;
11 | this.spec = spec;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/java/pxb/android/arsc/ResSpec.java:
--------------------------------------------------------------------------------
1 | package pxb.android.arsc;
2 |
3 | public class ResSpec {
4 | public int flags;
5 | public final int id;
6 | public String name;
7 |
8 | public ResSpec(int id) {
9 | this.id = id;
10 | }
11 |
12 | public void updateName(String s) {
13 | String name = this.name;
14 | if (name == null) {
15 | this.name = s;
16 | } else if (!s.equals(name)) {
17 | throw new RuntimeException();
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/java/pxb/android/arsc/Type.java:
--------------------------------------------------------------------------------
1 | package pxb.android.arsc;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | public class Type {
7 | public List configs = new ArrayList();
8 | public int id;
9 | public String name;
10 | public ResSpec[] specs;
11 | int wPosition;
12 |
13 | public void addConfig(Config config) {
14 | if (config.entryCount != this.specs.length) {
15 | throw new RuntimeException();
16 | }
17 | this.configs.add(config);
18 | }
19 |
20 | public ResSpec getSpec(int resId) {
21 | ResSpec res = this.specs[resId];
22 | if (res != null) {
23 | return res;
24 | }
25 | res = new ResSpec(resId);
26 | this.specs[resId] = res;
27 | return res;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/java/pxb/android/arsc/Value.java:
--------------------------------------------------------------------------------
1 | package pxb.android.arsc;
2 |
3 | public class Value {
4 | public final int data;
5 | public String raw;
6 | public final int type;
7 |
8 | public Value(int type, int data, String raw) {
9 | this.type = type;
10 | this.data = data;
11 | this.raw = raw;
12 | }
13 |
14 | public String toString() {
15 | if (this.type == 3) {
16 | return this.raw;
17 | }
18 | return String.format("{t=0x%02x d=0x%08x}", new Object[]{Integer.valueOf(this.type), Integer.valueOf(this.data)});
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/java/pxb/android/axml/AxmlVisitor.java:
--------------------------------------------------------------------------------
1 | package pxb.android.axml;
2 |
3 | public class AxmlVisitor extends NodeVisitor {
4 | public AxmlVisitor(NodeVisitor av) {
5 | super(av);
6 | }
7 |
8 | public void ns(String prefix, String uri, int ln) {
9 | if (this.nv != null && (this.nv instanceof AxmlVisitor)) {
10 | ((AxmlVisitor) this.nv).ns(prefix, uri, ln);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/java/pxb/android/axml/NodeVisitor.java:
--------------------------------------------------------------------------------
1 | package pxb.android.axml;
2 |
3 | public abstract class NodeVisitor {
4 | public static final int TYPE_FIRST_INT = 16;
5 | public static final int TYPE_INT_BOOLEAN = 18;
6 | public static final int TYPE_INT_HEX = 17;
7 | public static final int TYPE_REFERENCE = 1;
8 | public static final int TYPE_STRING = 3;
9 | protected NodeVisitor nv;
10 |
11 | public NodeVisitor(NodeVisitor nv) {
12 | this.nv = nv;
13 | }
14 |
15 | public void attr(String ns, String name, int resourceId, int type, Object obj) {
16 | if (this.nv != null) {
17 | this.nv.attr(ns, name, resourceId, type, obj);
18 | }
19 | }
20 |
21 | public NodeVisitor child(String ns, String name) {
22 | if (this.nv != null) {
23 | return this.nv.child(ns, name);
24 | }
25 | return null;
26 | }
27 |
28 | public void end() {
29 | if (this.nv != null) {
30 | this.nv.end();
31 | }
32 | }
33 |
34 | public void line(int ln) {
35 | if (this.nv != null) {
36 | this.nv.line(ln);
37 | }
38 | }
39 |
40 | public void text(int lineNumber, String value) {
41 | if (this.nv != null) {
42 | this.nv.text(lineNumber, value);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/java/pxb/android/axml/ValueWrapper.java:
--------------------------------------------------------------------------------
1 | package pxb.android.axml;
2 |
3 | public class ValueWrapper {
4 | public static final int CLASS = 3;
5 | public static final int ID = 1;
6 | public static final int STYLE = 2;
7 | public final String raw;
8 | public final int ref;
9 | public final int type;
10 |
11 | private ValueWrapper(int type, int ref, String raw) {
12 | this.type = type;
13 | this.raw = raw;
14 | this.ref = ref;
15 | }
16 |
17 | public ValueWrapper replaceRaw(String raw) {
18 | return new ValueWrapper(this.type, this.ref, raw);
19 | }
20 |
21 | public static ValueWrapper wrapId(int ref, String raw) {
22 | return new ValueWrapper(ID, ref, raw);
23 | }
24 |
25 | public static ValueWrapper wrapStyle(int ref, String raw) {
26 | return new ValueWrapper(STYLE, ref, raw);
27 | }
28 |
29 | public static ValueWrapper wrapClass(int ref, String raw) {
30 | return new ValueWrapper(CLASS, ref, raw);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/java/pxb/android/axmlLP/EmptyAdapter.java:
--------------------------------------------------------------------------------
1 | package pxb.android.axmlLP;
2 |
3 | import pxb.android.axmlLP.AxmlVisitor.NodeVisitor;
4 |
5 | public class EmptyAdapter extends AxmlVisitor {
6 |
7 | public static class EmptyNode extends NodeVisitor {
8 | public NodeVisitor child(String ns, String name) {
9 | return new EmptyNode();
10 | }
11 | }
12 |
13 | public NodeVisitor first(String ns, String name) {
14 | return new EmptyNode();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/java/pxb/android/axmlLP/StringItem.java:
--------------------------------------------------------------------------------
1 | package pxb.android.axmlLP;
2 |
3 | class StringItem {
4 | public String data;
5 | public int dataOffset;
6 | public int index;
7 |
8 | public StringItem(String data) {
9 | this.data = data;
10 | }
11 |
12 | public boolean equals(Object obj) {
13 | return ((StringItem) obj).data.equals(this.data);
14 | }
15 |
16 | public int hashCode() {
17 | return this.data.hashCode();
18 | }
19 |
20 | public String toString() {
21 | return String.format("S%04d %s", new Object[]{Integer.valueOf(this.index), this.data});
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/android.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/android.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/auto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/auto.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/button_binder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/button_binder_focus.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/button_binder_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/button_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/button_clear.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/button_clear_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/button_clear_press.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/cbutton.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/checkbox_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/checkbox_selector_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/clear.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_ads.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_ads.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_backup.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_backup_data.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_backup_data.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_create_apk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_create_apk.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_custom_patch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_custom_patch.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_deodex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_deodex.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_lvl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_lvl.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_odex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_odex.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_patch_reboot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_patch_reboot.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_patcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_patcher.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_permissions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_permissions.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_recycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_recycle.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_restore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_restore.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/context_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/context_share.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/faq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/faq.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/fb_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/fb_back.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/fb_folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/fb_folder.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/file_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/file_icon.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/ic_angel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/ic_angel.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/ic_bolen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/ic_bolen.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/ic_progress_indicator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/ic_progress_indicator.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/ic_vopros.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/ic_vopros.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/ic_wait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/ic_wait.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/info_app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/info_app.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/klev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/klev.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/klev_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/klev_down.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/menu.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/menu_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/menu_back.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/move_to.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/move_to.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/rect_text_edit_transparent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/remove.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/run.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/settings.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/star.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/star_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/star_down.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/switch_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/switch_off.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/switch_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/switch_on.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/tab_bg_selected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/tab_bg_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/tab_bg_unselected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/tab_divider.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/tab_divider.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/tab_text_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/toggleswitch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-hdpi-v4/update.png
--------------------------------------------------------------------------------
/res/drawable-hdpi-v4/widget_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/button_binder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/button_binder_focus.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/button_binder_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/cbutton.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-ldpi-v4/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/tab_bg_selected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/tab_bg_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/tab_bg_unselected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/tab_text_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/toggleswitch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-ldpi-v4/widget_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/button_binder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/button_binder_focus.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/button_binder_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/cbutton.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-mdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-mdpi-v4/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/ic_progress_indicator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-mdpi-v4/ic_progress_indicator.png
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/tab_bg_selected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/tab_bg_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/tab_bg_unselected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/tab_text_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/toggleswitch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-mdpi-v4/widget_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-xhdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi-v4/ic_progress_indicator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-xhdpi-v4/ic_progress_indicator.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-xxhdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi-v4/ic_progress_indicator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-xxhdpi-v4/ic_progress_indicator.png
--------------------------------------------------------------------------------
/res/drawable-xxxhdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/drawable-xxxhdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable/background_alert.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/res/drawable/background_gradient.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/button_advanced.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/button_advanced_press.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/button_binder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/button_binder_focus.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/button_binder_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/cbutton.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/cbutton_adv.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/cbutton_clear.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/custom_progress_bar_horizontal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 | -
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | -
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/res/drawable/my_progress_indeterminate.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/drawable/rect_text_edit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/drawable/rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/tab_bg_selected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/tab_bg_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable/tab_bg_unselected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/tab_text_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable/toggleswitch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/widget_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/layout/android_patch_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/layout/app_disabler_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/layout/binder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/binder_create_dir.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/layout/binder_file_browser.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/layout/binder_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/layout/bootlistitemview.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/layout/child_categoty_pref_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/res/layout/child_change_dir_pref_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/layout/child_day_on_up_pref_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/layout/child_name_sheme_pref_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/layout/child_orientation_pref_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/layout/child_root_pref_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/layout/child_sort_pref_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/layout/child_text_size_pref_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/layout/child_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/contextmenu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/layout/corepatch_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/custompatchdialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/layout/file_browser.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/file_browser_row.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/help.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/res/layout/icon_app_disabler_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/icon_context_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/patchdialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/layout/purchases_for_delete.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/switchers_context_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/tabs_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/layout/widget_inapp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/widget_lvl.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/layout/widget_proxy_gp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/menu/mainmenu.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/clone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/clone.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_group_check_items.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_group_check_items.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_group_checkable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_group_checkable.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_group_editable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_group_editable.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_group_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_group_run.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_group_selectable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_group_selectable.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_launcher2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_launcher2.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_launcher3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_launcher3.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_launcher4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_launcher4.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_launcher5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_launcher5.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_launcher6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_launcher6.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_launcher7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_launcher7.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/ic_launcher8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/ic_launcher8.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/vertical_switcher_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/vertical_switcher_off.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi-v4/vertical_switcher_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-hdpi-v4/vertical_switcher_on.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/clone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/clone.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_group_check_items.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_group_check_items.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_group_checkable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_group_checkable.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_group_editable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_group_editable.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_group_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_group_run.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_group_selectable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_group_selectable.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_launcher2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_launcher2.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_launcher3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_launcher3.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_launcher4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_launcher4.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_launcher5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_launcher5.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_launcher6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_launcher6.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_launcher7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_launcher7.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/ic_launcher8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/ic_launcher8.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/vertical_switcher_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/vertical_switcher_off.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi-v4/vertical_switcher_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-mdpi-v4/vertical_switcher_on.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/clone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/clone.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_group_check_items.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_group_check_items.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_group_checkable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_group_checkable.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_group_editable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_group_editable.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_group_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_group_run.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_group_selectable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_group_selectable.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_launcher2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_launcher2.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_launcher3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_launcher3.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_launcher4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_launcher4.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_launcher5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_launcher5.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_launcher6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_launcher6.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_launcher7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_launcher7.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/ic_launcher8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/ic_launcher8.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/vertical_switcher_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/vertical_switcher_off.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi-v4/vertical_switcher_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xhdpi-v4/vertical_switcher_on.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/clone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/clone.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_group_check_items.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_group_check_items.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_group_checkable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_group_checkable.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_group_editable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_group_editable.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_group_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_group_run.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_group_selectable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_group_selectable.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_launcher2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_launcher2.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_launcher3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_launcher3.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_launcher4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_launcher4.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_launcher5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_launcher5.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_launcher6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_launcher6.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_launcher7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_launcher7.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/ic_launcher8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/ic_launcher8.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/vertical_switcher_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/vertical_switcher_off.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi-v4/vertical_switcher_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxhdpi-v4/vertical_switcher_on.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/clone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/clone.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_group_check_items.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_group_check_items.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_group_checkable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_group_checkable.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_group_editable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_group_editable.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_group_run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_group_run.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_group_selectable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_group_selectable.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_launcher2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_launcher2.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_launcher3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_launcher3.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_launcher4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_launcher4.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_launcher5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_launcher5.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_launcher6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_launcher6.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_launcher7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_launcher7.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/ic_launcher8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/ic_launcher8.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/vertical_switcher_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/vertical_switcher_off.png
--------------------------------------------------------------------------------
/res/mipmap-xxxhdpi-v4/vertical_switcher_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAppz/LuckyPatcher/e343fe0ad53b7fc9a3bb03b9c2df98c0f9711205/res/mipmap-xxxhdpi-v4/vertical_switcher_on.png
--------------------------------------------------------------------------------
/res/values-ar/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-ar/help.html
4 | res/raw-ar/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-az/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-az/help.html
4 | res/raw-az/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-be/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-be/help.html
4 | res/raw-be/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-bg/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-bg/help.html
4 | res/raw-bg/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-cs/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-cs/help.html
4 | res/raw-cs/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-da/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-da/help.html
4 | res/raw-da/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-de/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-de/help.html
4 | res/raw-de/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-es-rES/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-es-rES/help.html
4 | res/raw-es-rES/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-es-rMX/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-es-rMX/help.html
4 | res/raw-es-rMX/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-es/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-es/help.html
4 | res/raw-es/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-fa/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-fa/help.html
4 | res/raw-fa/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-fi/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-fi/help.html
4 | res/raw-fi/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-gu/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-gu/help.html
4 |
5 |
--------------------------------------------------------------------------------
/res/values-hi/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-hi/help.html
4 |
5 |
--------------------------------------------------------------------------------
/res/values-hu/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-hu/help.html
4 | res/raw-hu/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-id/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-id/help.html
4 |
5 |
--------------------------------------------------------------------------------
/res/values-in/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-in/help.html
4 |
5 |
--------------------------------------------------------------------------------
/res/values-ko/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-ko/help.html
4 |
5 |
--------------------------------------------------------------------------------
/res/values-lt/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-lt/help.html
4 | res/raw-lt/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-my/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-my/help.html
4 | res/raw-my/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-ro/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-ro/help.html
4 | res/raw-ro/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-ru/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-ru/help.html
4 | res/raw-ru/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-sk/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-sk/help.html
4 |
5 |
--------------------------------------------------------------------------------
/res/values-tr/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-tr/help.html
4 |
5 |
--------------------------------------------------------------------------------
/res/values-ug/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-ug/help.html
4 | res/raw-ug/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-uk/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-uk/help.html
4 | res/raw-uk/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-vi/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-vi/help.html
4 | res/raw-vi/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-zh-rCN/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-zh-rCN/help.html
4 | res/raw-zh-rCN/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-zh-rHK/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-zh-rHK/help.html
4 | res/raw-zh-rHK/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values-zh-rTW/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw-zh-rTW/help.html
4 | res/raw-zh-rTW/help_custom_patch.html
5 |
6 |
--------------------------------------------------------------------------------
/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #ff00ff73
4 | #fff0e442
5 | #ffff0055
6 | #ff00ffff
7 | #ffcc7943
8 | #00000000
9 |
10 |
--------------------------------------------------------------------------------
/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 8dp
4 | 0dp
5 |
6 |
--------------------------------------------------------------------------------
/res/values/menus.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values/raws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/raw/busybox
4 | res/raw/busyboxmips
5 | res/raw/busyboxmipspie
6 | res/raw/busyboxpie
7 | res/raw/busyboxx86
8 | res/raw/busyboxx86pie
9 | res/raw/dalvikvm_armv7a
10 | res/raw/dexopt
11 | res/raw/dexoptmips
12 | res/raw/dexoptx86
13 | res/raw/eula.doc
14 | res/raw/help.html
15 | res/raw/help_custom_patch.html
16 | res/raw/hosts
17 | res/raw/p.info
18 | res/raw/reboot
19 | res/raw/rebootmips
20 | res/raw/rebootx86
21 | res/raw/zipalign
22 |
23 |
--------------------------------------------------------------------------------
/res/xml-v11/android_patch_widget_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v11/app_disabler_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v11/binder_widget_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v11/inapp_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v11/lvl_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v11/proxy_gp_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v12/android_patch_widget_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v12/app_disabler_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v12/binder_widget_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v12/inapp_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v12/lvl_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v12/proxy_gp_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v17/android_patch_widget_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v17/app_disabler_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v17/binder_widget_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v17/inapp_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v17/lvl_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml-v17/proxy_gp_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml/android_patch_widget_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml/app_disabler_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml/binder_widget_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml/inapp_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml/lvl_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/xml/proxy_gp_widget_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------