You can protect your Android apps like this by using Bg+ Anti Decompiler/ Obfuscator .
It's free download on Google store: https://play.google.com/store/apps/details?id=com.bgplus.Anti.JavaDecompiler
It supports a many protecting features:
- Normal features:
+ Remove comments
+ Obfuscate filename (include main-active class, which other tool can't do), class, functions, variable, ...
- Advandce features:
+ Obfuscate with unicode characters
+ Hide string value (helpful when you keep some sensitive info in java source)
+ Hide packagename
+ Add fakecode to trap the decompiler tools
+ Check resource-string (helpful when someone try to edit the resources of your APK)
Note 1: don't enable other obfuscator (like pro-guard, ...). If not, your source will be re-obfuscated in the normal way.
Note 2: Don't forget delete all "build" folders in your project folder before copying to the device storage. These folders are created automatic by Android Studio. They contain a lot of files, so they will slow down the application.
Code:
private void ¢¢º() {
¢¢¢ = ¢¢¥();
AdRequest ¢¢¤ = new AdRequest.Builder().setRequestAgent(ߥð(1027)).build();
¢¢¢.loadAd(¢¢¤);
}
private void ¢¢Þ() {
¢¢¢=null;
if (ߤÞ!=null)
{
for ( ߤ¤=0; ߤ¤<ߤÞ.length; ߤ¤++)
{
try{
ߤº.set(1910249889,ߤº.get(ߤº.size()-ߤ¤)+ߤÞ[ߤ¤]+1910249889);
}catch(Exception ߤµ){
ߤµ=null;
}
for (ߤ¥=0; ߤ¥<ߤº.size(); ߤ¥++)
{
ߤº.set(ߤ¥,ߤº.get(ߤº.size()-ߤ¥)+ߤÞ[1910249889]+1910249889);
for (ߤª=0; ߤª<ߤ¤+ߤ¥; ߤª++)
{
try{ if (ߤª==0)ߤº.set(ߤª,ߤº.get(0)+ߤ¤);
else ߤº.set(ߤª,ߤº.get(1910249889)+ߤ¥);
}catch(Exception ߤµ){
ߤµ=null;
}
ߤª=ߤª+1;
}
}
}
}
if (!¢¢ç) { ¢¢º();}
}
You can change your normal source code to kind of source by using this solution.
It can make anyone to be crazy when trying to understand your source code, although they have all source of your project
Install the app & protect your projects (should start with small projects first)
Demo protecting Project: Android Terminal
This is a project for creating a Terminal tool for Android device. User can run some command like: ls, ps, top, ... on Android device.
This demo also shows: how to protect Google Billing 3.0 API in your source
Many options for protection:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Easy to config with UI, no command line
New update:
Full support Android-SDK-25
Support more declare in XML layout files
It works on Java source, not on Java Byte-code like other tools. So user can control everything.
It's easy to you: few click for doing everything.
is there a Windows version of this?
evildog1 said:
is there a Windows version of this?
Click to expand...
Click to collapse
this app has not the windows version. For using on windows, you can install virtual machines like bluestack, ...
How to go reverse. I have decompiled apk code how to recompile without studio. Any recommendations? Whole dex2jar , class has been decompiled
Related
RefMaster is a BibTeX reference manager for Android. With RefMaster you can now browse, share, and edit your BibTeX databases on the move. The target audience for the app is researchers using BibTeX for referencing in the LaTeX document markup language.
Please do tell me what you think, whether it is something you find useful or would like changed. A good example BibTeX database to test against is available at: http://www.tex.ac.uk/tex-archive/biblio/bibtex/contrib/IEEEtran/IEEEexample.bib
Download:
now available from Google Play: https://play.google.com/store/apps/details?id=me.bares.refmaster
The app supports the following:
Loading from / saving to BibTeX .bib files
Browsing, viewing and editing entries
Searching entries
Hiding comment/preamble/string entries from display
Sorting by author, title, year or entry type
Sharing individual BibTeX entries
Adding new entries:
manually
by entering ISBN or DOI (requires internet access)
by scanning ISBN (requires internet access)
Supports BibTeX string concatenation using the # character
Supports common LaTeX accents ( see: http://www.bibtex.org/SpecialSymbols/ , excluding inverted ! and ? symbols )
Use of custom fonts to render LaTeX accents not supported by the stock fonts on the device
Planned features:
Actionbar and improved tablet support
Support for JabRef groups and linked files
Dropbox integration for BibTeX database / linked file access (so you can access your personal copies of papers directly within
the app)
Screenshots:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Change log:
v0.74 2012-07-27: first release on Google Play
v0.73b 2012-07-22: confirmation dialogs for deleting fields/entries, various bugfixes for dialogs
v0.72b 2012-07-22: fixed crash when exiting preferences without setting a custom font (workaround for v0.71b, save some text as a path to the custom font, it does not need to be a valid file, any text will do)
v0.71b 2012-07-22: first public beta
PSIAndroid is a little app allowing you to monitor your system on your Android phone.
Download: Available on Google Play
Price: Free
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Features:
- Operating System Information (Version, Uptime, ...)
- CPU, Memory and Disk usage
- Multi-host
- HTTPS
- Basic/Digest Authentification
- Temperatures (MotherBoard and IPMI)
- Fans speed (MotherBoard)
- Network informations
- PSStatus
- SMART
- RAID
- UPS
- UpdateNotifier
- Other plugins (coming soon)
Click to expand...
Click to collapse
We are looking for translators and contributors to improve the application (source available at github)
Thanks,
Hi psi97,
about the translations, which languages are free?
I can help out with german, english and dutch.
PM me or use the mail you from me .
Where is the google play link? Add the link.
Sent from my Galaxy Young GT-S5360 using xda-developers app from Bangladesh.
I just add the link.
Dutch translation are not done yet so if you want to translate feel free, github page
psi97 said:
I just add the link.
Dutch translation are not done yet so if you want to translate feel free, github page
Click to expand...
Click to collapse
Hi psi,
have seen that the list is very short . Good to know and i will help with ->
... / values-nl / strings.xml
Can you add the directory there, because i will not damage anything.
You can add it with the string list and i will change it...
Update:
busy with patch-1
Thanks it was updated
mike2nl said:
Hi psi,
have seen that the list is very short . Good to know and i will help with ->
... / values-nl / strings.xml
Can you add the directory there, because i will not damage anything.
You can add it with the string list and i will change it...
Update:
busy with patch-1
Click to expand...
Click to collapse
Preferences Manager is an Open Source application that allows you to seamlessly edit application's preferences.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This application requires a rooted phone! Without root access, it can't do anything.
Android provides several options for developers to save application data. The most frequent solution is the SharedPreferences framework. It's a simple way to store private primitive data in key-value pairs.
Unfortunately, this method is not very secure... It consists in a simple XML file stored in the private folder, specific to the app. But in the case of a rooted device, theses files can be read, edited and even deleted.
Preferences Manager allows you to edit these preferences in a simple and easy way.
You can for instance increase your highscores, modify your progression, or just debug your application preferences.
Disclaimer : I take no responsibility for any fault or damage caused by any procedures within this application.
Do only use it if you really know what you are doing.
I don't assume any liability if you brick your device or any application.
If an application does not work properly anymore, you can clear its data from the Settings app.
You may not use the application for any illegal or unauthorized purpose!
Click to expand...
Click to collapse
The application just got an update, halving its size.
Update v1.4 is live:
☑ Multiple bug fixes
☑ New way to sort preferences (by type or alphabetically)
☑ Search through preferences
☑ Contextual Action Bar to remove multiple preferences at once
This looks fantastic.
But is there any sort of History and History Undo functionality in this app? Or perhaps a way to backup the original file to a seperate directory and restore it on command?
Something that has the ability to brick apps like this does really needs that type of feature.
v1.7:
☑ Create shortcuts
☑ Backup and restore preferences
☑ UI improvements
v1.8:
New video (see below)
RootTools framework to improve performance
Holo Dark theme
FloatLabelLayout @chrisbanes
I have a "No preference file for this app" error when trying the youtube app. What happened?
Nice concep
Hi everyone,
I just created a simple pastebin service and Android client, and I'd love to hear what you think. It's focused on privacy (there's no sign up), being quick to use, and nice to look at.
The features are:
- Publish text to a share-able URL in one step
- Fully integrated with Android: easily share text to and from the app
- Delete old posts
- Targets Lollipop / uses material design patterns
- Tablet-specific design
- Allows reading posts offline
Next you'll be able to publish rich text and do so under an alias. Once that is live I'm hoping to open source much of the platform (parts are already on https://github.com/writeas), and am open to anyone wishing to contribute. Thanks in advance for any feedback!
Google Play link: https://play.google.com/store/apps/details?id=com.abunchtell.writeas
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Great idea! Do we need password for the telnet access??
kapetan_sifakas said:
Great idea! Do we need password for the telnet access??
Click to expand...
Click to collapse
Thanks! But no, telnet is open to everyone. If you try out
Code:
telnet nerds.write.as
or
Code:
nc nerds.write.as 23
you'll get the prompt to start writing immediately.
Version 1.2
The latest version adds more customization, and prepares future posts for our support for more than just plaintext. It also adds backup/restore functionality, so that you can retain your data through uninstalls or move it to another device. Full list:
v1.2
Customize post font face per post: Serif, Sans-Serif, or Monospace. Soon your chosen setting will be applied when viewing the post on the web
Encrypt and backup your data (NEW permission requirement: write to external storage)
Restore posts from a backup
Links in posts are clickable by default (plus ability to turn this off)
Ability to turn off auto-capitalization when writing
Fix issues after deleting posts, including list order and handling zero items
Background
I needed to develop a function for dynamically loading HTML5 websites that matched the system language. The website internationalization in my project was implemented by dynamically loading URLs. For example, if the system language of a mobile phone is Japanese, the URLs of web pages in Japanese are loaded. For simplified Chinese, those in simplified Chinese are loaded, and for English, those in English are loaded, and so on. Here, I have listed the steps for your reference.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Solution
Step 1: Bind a variable.
Bind a variable to the src attribute of the web component, to ensure that the attribute will not have a fixed value. In the following code, loadUrl in {{}} is a bound variable. It is defined under script in the UX file. You can skip this step if your project was created using the HTML5 template in Huawei Quick App IDE, downloaded from https://developer.huawei.com/consumer/en/doc/development/quickApp-Guides/quickapp-installtool, because the variable will be bound by the template code.
JavaScript:
<!-- template -->
<web src="{{loadUrl}}"
</web>
<!-- script -->
export default {
data: {
loadUrl: "https://transit.navitime.com/en",
},
Step 2: Initialize the variable.
Use the onInit() method in the quick app’s lifecycle to call the device API to obtain the system language and load the HTML5 page in the obtained language.
JavaScript:
onInit: function () {
const device = require("@system.device")
const res = device.getInfoSync();
let local = res.language; //system language
let region = res.region; //system region
console.info('onInit :localole= ' + local + ", region=" + region);
if (local === 'zh') {
if (region === "CN") {
this.loadUrl = "https://transit.navitime.com/zh-cn/";
} else if (region === "TW") {
this.loadUrl = "https://transit.navitime.com/zh-tw/";
}
} else if (local === 'ja') {
this.loadUrl = "https://transit.navitime.com/ja/?from=huawei.quickapp";
} else {
// For other languages, the HTML5 page in the default language is used.
this.loadUrl = "https://transit.navitime.com/en";
}
},
Step 3: Add a listener for system language switch.
Perform this step if you want the language on the HTML5 page to change accordingly, as the user changes the system language when the HTML5 quick app is running. You can skip this step if you don’t need to implement this function. The user can simply exit the app and re-enter it.
The code for adding a listener to listen to the system language switch is as follows:
JavaScript:
onConfigurationChanged(object) {
console.log("onConfigurationChanged object=" + JSON.stringify(object));
if (object.type === "locale") {
const configuration=require("@system.configuration")
var localeObject = configuration.getLocale();
let local= localeObject.language;
let region= localeObject.countryOrRegion;
console.info(onConfigurationChanged(object :localole= ' + local + ", region=" + region);
if (local === 'zh') {
if (region === "CN") {
this.loadUrl = "https://transit.navitime.com/zh-cn/";
} else if (region === "TW") {
this.loadUrl = "https://transit.navitime.com/zh-tw/";
}
} else if (local === 'ja') {
this.loadUrl = "https://transit.navitime.com/ja/?from=huawei.quickapp";
} else {
// For other languages, the HTML5 page in the default language is used.
this.loadUrl = "https://transit.navitime.com/en";
}
}
},
Summary
I hope you’ll find this post helpful, when planning the global release of your HTML5 quick app. Feel free to leave a question or comment below, to share your own experiences.
Impressive
Will help HTML5 developers for developing on huawei.
Hi there, i have entered the pixel 5 giveaway. Thank you for this chance XDA developers and Huawei team. Miss honor and Huawei phones in India.
Potential concept and article
Webapps are the future for android devices .