How to discover intent names within an existing Android application? (specifically Facebook)

I have a Samsung Galaxy Nexus Android phone and for whatever reason the Facebook app's menu UI is missing. This means I cannot get to the Settings screen. I figure I can start the intent from my own app, but how do I find the intent name? I've looked in the APK, but the manifest appears to be compiled into a binary format.

Does anyone know the intent name for the Facebook settings activity?

How can I get a list of the intents in an APK?

----------- Update -----------

The Facebook app's manifest includes:

<manifest android:versionCode="4130"
android:versionName="1.6.3"
package="com.facebook.katana"
xmlns:android="http://schemas.android.com/apk/res/android">

<activity android:label="@string/home_settings"
android:name=".SettingsActivity" />

I've got this in my code:

public void goToFacebookSettings(Context context) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setClassName("com.facebook.katana",
        "com.facebook.katana.SettingsActivity");
    context.startActivity(intent);
}

But this fails with:

FATAL EXCEPTION: main
java.lang.SecurityException: Permission Denial: starting Intent
{ act=android.intent.action.VIEW cmp=com.facebook.katana/.SettingsActivity }

Is this an inherent limitation, or can I comply with the security requirements in some way?

Answers


<activity android:label="@string/home_settings"
android:name=".SettingsActivity" />

This activity doesn't declare any intent-filters. It also doesn't have the android:exported attribute set to true. Which means it can only be launched by the Facebook app or an app that has the same user ID since it's considered for app-internal use only.

See the android:exported attribute documentation for more information.


Since this is for your personal use, you might be able to edit that attribute into the manifest and rebuild the application (also using apktool).


Need Your Help

How to solve library conflict between OpenCV libjpeg and fltkjpeg?

c opencv shared-libraries static-libraries fltk

The issue is, there is a library I have to link called fltkjpeg.lib in order to read *.jpg format.

Assembler can't locate existing files

assembly x86 dos tasm dosbox

My TASM is mounted to the folder where my my TASM, TLINK, and files are. Specifically it is at C:/TASM/BIN. I have no problems when running a single .asm file but when I include an another file so ...

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.