For any custom Launcher/HomeScreen applications, the permission SET_PREFERRED_APPLICATIONS is needed to set itself as the Default HomeScreen.
PackageManager::addPreferredActivity().
I’m aware of the StackOverflow threads on this issue (example) and that such a permission is only granted to apps signed with the OEM/Google certificates.
GoLauncher manages to set itself as Default Home Screen app automagically. They seem to have obtained the SET_PREFERRED_APPLICATIONS permission too (see here for permission list).
How ? is the question.
Not on a Nexus S running Jelly Bean. After installing it, I get a chooser, just like any other home screen.
If you have an environment (post-Android 2.2) where GO Launcher Ex is doing this, please let me know so I can do more research.
They do not have
SET_PREFERRED_APPLICATIONS. They are asking forSET_PREFERRED_APPLICATIONS. You can ask for whatever you want; you will not get it.