Clone an android application programmatically





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















There are some Android applications which allow user to clone existed application on the phone.
eg: http://fixoptimize.com/app-cloner
Can you explain how these cloners work?
Thank you.










share|improve this question























  • Consider move the question to Android Enthusiasts: android.stackexchange.com

    – Meow Cat 2012
    Jan 4 at 2:31


















0















There are some Android applications which allow user to clone existed application on the phone.
eg: http://fixoptimize.com/app-cloner
Can you explain how these cloners work?
Thank you.










share|improve this question























  • Consider move the question to Android Enthusiasts: android.stackexchange.com

    – Meow Cat 2012
    Jan 4 at 2:31














0












0








0








There are some Android applications which allow user to clone existed application on the phone.
eg: http://fixoptimize.com/app-cloner
Can you explain how these cloners work?
Thank you.










share|improve this question














There are some Android applications which allow user to clone existed application on the phone.
eg: http://fixoptimize.com/app-cloner
Can you explain how these cloners work?
Thank you.







android clone cloneable






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 4 at 0:28









Anh-Tuan MaiAnh-Tuan Mai

6031330




6031330













  • Consider move the question to Android Enthusiasts: android.stackexchange.com

    – Meow Cat 2012
    Jan 4 at 2:31



















  • Consider move the question to Android Enthusiasts: android.stackexchange.com

    – Meow Cat 2012
    Jan 4 at 2:31

















Consider move the question to Android Enthusiasts: android.stackexchange.com

– Meow Cat 2012
Jan 4 at 2:31





Consider move the question to Android Enthusiasts: android.stackexchange.com

– Meow Cat 2012
Jan 4 at 2:31












1 Answer
1






active

oldest

votes


















1















  1. Change the package name in AndroidManifest.xml and re-sign the app. Notice that the xml is binary instead of text in an apk package. Android identify different apps with package name and with package name changed an app would be considered a "new one".

  2. While the simple approach may or may not work (e.g. the app assumes its package name to be constant, or checks its signature) in many cases various other changes should be applied, including also chage the java package name, disable signature check, change string literals which are assumed path names containing a package name. All these would (likely) require decompiling and deassambling dex and even native codes, which is not only hard but illegal as well.


  3. The modern way: Sandboxify the app. A sandbox environment would be created, within which the app being "cloned" is not actually cloned and remains unchanged. The sandbox would intercept all communication between the cloned app and the system, the user and other apps so it's transparent and stable. Neither the app nor the user would notice that the app's being sandboxed. And this most likely keeps legal concerns away unless a emulator is also outlawed. There are open source sandbox apps on github that you could examine and, well, copy.






share|improve this answer
























  • Would you like to give me some github links please? Thank you. I only found this one https://github.com/pjlantz/droidbox

    – Anh-Tuan Mai
    Jan 4 at 3:51






  • 1





    It would sound like advertising so i didn't add links in the answer. But as you want, github.com/asLody/VirtualApp would be one. While it's a sandbox app for users to install many apps inside, it's also possible to contain only one app so it would look like the app itself. github.com/android-hacker/exposed might be an similiar implementation, or not. And consider method (1) of the answer first.

    – Meow Cat 2012
    Jan 4 at 4:15












Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54031666%2fclone-an-android-application-programmatically%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1















  1. Change the package name in AndroidManifest.xml and re-sign the app. Notice that the xml is binary instead of text in an apk package. Android identify different apps with package name and with package name changed an app would be considered a "new one".

  2. While the simple approach may or may not work (e.g. the app assumes its package name to be constant, or checks its signature) in many cases various other changes should be applied, including also chage the java package name, disable signature check, change string literals which are assumed path names containing a package name. All these would (likely) require decompiling and deassambling dex and even native codes, which is not only hard but illegal as well.


  3. The modern way: Sandboxify the app. A sandbox environment would be created, within which the app being "cloned" is not actually cloned and remains unchanged. The sandbox would intercept all communication between the cloned app and the system, the user and other apps so it's transparent and stable. Neither the app nor the user would notice that the app's being sandboxed. And this most likely keeps legal concerns away unless a emulator is also outlawed. There are open source sandbox apps on github that you could examine and, well, copy.






share|improve this answer
























  • Would you like to give me some github links please? Thank you. I only found this one https://github.com/pjlantz/droidbox

    – Anh-Tuan Mai
    Jan 4 at 3:51






  • 1





    It would sound like advertising so i didn't add links in the answer. But as you want, github.com/asLody/VirtualApp would be one. While it's a sandbox app for users to install many apps inside, it's also possible to contain only one app so it would look like the app itself. github.com/android-hacker/exposed might be an similiar implementation, or not. And consider method (1) of the answer first.

    – Meow Cat 2012
    Jan 4 at 4:15
















1















  1. Change the package name in AndroidManifest.xml and re-sign the app. Notice that the xml is binary instead of text in an apk package. Android identify different apps with package name and with package name changed an app would be considered a "new one".

  2. While the simple approach may or may not work (e.g. the app assumes its package name to be constant, or checks its signature) in many cases various other changes should be applied, including also chage the java package name, disable signature check, change string literals which are assumed path names containing a package name. All these would (likely) require decompiling and deassambling dex and even native codes, which is not only hard but illegal as well.


  3. The modern way: Sandboxify the app. A sandbox environment would be created, within which the app being "cloned" is not actually cloned and remains unchanged. The sandbox would intercept all communication between the cloned app and the system, the user and other apps so it's transparent and stable. Neither the app nor the user would notice that the app's being sandboxed. And this most likely keeps legal concerns away unless a emulator is also outlawed. There are open source sandbox apps on github that you could examine and, well, copy.






share|improve this answer
























  • Would you like to give me some github links please? Thank you. I only found this one https://github.com/pjlantz/droidbox

    – Anh-Tuan Mai
    Jan 4 at 3:51






  • 1





    It would sound like advertising so i didn't add links in the answer. But as you want, github.com/asLody/VirtualApp would be one. While it's a sandbox app for users to install many apps inside, it's also possible to contain only one app so it would look like the app itself. github.com/android-hacker/exposed might be an similiar implementation, or not. And consider method (1) of the answer first.

    – Meow Cat 2012
    Jan 4 at 4:15














1












1








1








  1. Change the package name in AndroidManifest.xml and re-sign the app. Notice that the xml is binary instead of text in an apk package. Android identify different apps with package name and with package name changed an app would be considered a "new one".

  2. While the simple approach may or may not work (e.g. the app assumes its package name to be constant, or checks its signature) in many cases various other changes should be applied, including also chage the java package name, disable signature check, change string literals which are assumed path names containing a package name. All these would (likely) require decompiling and deassambling dex and even native codes, which is not only hard but illegal as well.


  3. The modern way: Sandboxify the app. A sandbox environment would be created, within which the app being "cloned" is not actually cloned and remains unchanged. The sandbox would intercept all communication between the cloned app and the system, the user and other apps so it's transparent and stable. Neither the app nor the user would notice that the app's being sandboxed. And this most likely keeps legal concerns away unless a emulator is also outlawed. There are open source sandbox apps on github that you could examine and, well, copy.






share|improve this answer














  1. Change the package name in AndroidManifest.xml and re-sign the app. Notice that the xml is binary instead of text in an apk package. Android identify different apps with package name and with package name changed an app would be considered a "new one".

  2. While the simple approach may or may not work (e.g. the app assumes its package name to be constant, or checks its signature) in many cases various other changes should be applied, including also chage the java package name, disable signature check, change string literals which are assumed path names containing a package name. All these would (likely) require decompiling and deassambling dex and even native codes, which is not only hard but illegal as well.


  3. The modern way: Sandboxify the app. A sandbox environment would be created, within which the app being "cloned" is not actually cloned and remains unchanged. The sandbox would intercept all communication between the cloned app and the system, the user and other apps so it's transparent and stable. Neither the app nor the user would notice that the app's being sandboxed. And this most likely keeps legal concerns away unless a emulator is also outlawed. There are open source sandbox apps on github that you could examine and, well, copy.







share|improve this answer












share|improve this answer



share|improve this answer










answered Jan 4 at 2:29









Meow Cat 2012Meow Cat 2012

383212




383212













  • Would you like to give me some github links please? Thank you. I only found this one https://github.com/pjlantz/droidbox

    – Anh-Tuan Mai
    Jan 4 at 3:51






  • 1





    It would sound like advertising so i didn't add links in the answer. But as you want, github.com/asLody/VirtualApp would be one. While it's a sandbox app for users to install many apps inside, it's also possible to contain only one app so it would look like the app itself. github.com/android-hacker/exposed might be an similiar implementation, or not. And consider method (1) of the answer first.

    – Meow Cat 2012
    Jan 4 at 4:15



















  • Would you like to give me some github links please? Thank you. I only found this one https://github.com/pjlantz/droidbox

    – Anh-Tuan Mai
    Jan 4 at 3:51






  • 1





    It would sound like advertising so i didn't add links in the answer. But as you want, github.com/asLody/VirtualApp would be one. While it's a sandbox app for users to install many apps inside, it's also possible to contain only one app so it would look like the app itself. github.com/android-hacker/exposed might be an similiar implementation, or not. And consider method (1) of the answer first.

    – Meow Cat 2012
    Jan 4 at 4:15

















Would you like to give me some github links please? Thank you. I only found this one https://github.com/pjlantz/droidbox

– Anh-Tuan Mai
Jan 4 at 3:51





Would you like to give me some github links please? Thank you. I only found this one https://github.com/pjlantz/droidbox

– Anh-Tuan Mai
Jan 4 at 3:51




1




1





It would sound like advertising so i didn't add links in the answer. But as you want, github.com/asLody/VirtualApp would be one. While it's a sandbox app for users to install many apps inside, it's also possible to contain only one app so it would look like the app itself. github.com/android-hacker/exposed might be an similiar implementation, or not. And consider method (1) of the answer first.

– Meow Cat 2012
Jan 4 at 4:15





It would sound like advertising so i didn't add links in the answer. But as you want, github.com/asLody/VirtualApp would be one. While it's a sandbox app for users to install many apps inside, it's also possible to contain only one app so it would look like the app itself. github.com/android-hacker/exposed might be an similiar implementation, or not. And consider method (1) of the answer first.

– Meow Cat 2012
Jan 4 at 4:15




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54031666%2fclone-an-android-application-programmatically%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Monofisismo

Angular Downloading a file using contenturl with Basic Authentication

Olmecas