la difusión de la acción de intención BOOT_COMPLETED no funciona correctamente

Tengo una clase receptora escuchando varias acciones, pero no puedo captar laandroid.intent.action.BOOT_COMPLETED acción. ¿Que estoy haciendo mal? Aquí está mi archivo de manifiesto:

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <!--<receiver android:name=".OtherReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
    </receiver>-->
    <receiver android:name="com.myApp.AppReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
             <action android:name="android.intent.action.PACKAGE_ADDED"/>
             <action android:name="com.myApp.wifitimer"/>
            <action android:name="android.intent.action.PACKAGE_REPLACED" />
            <data android:scheme="package" android:path="com.myApp" />
    </intent-filter>
    </receiver>

Como se puede ver, agregué nuevamente el permiso dentro del receptor y el nombre del receptor recibe el nombre completo de la clase como estaresponder sugiere.
Aquí está la clase del receptor de difusión:

@Override
public void onReceive(Context arg0, Intent arg1) {

    String action1 = arg1.getAction();

    if(action1.equals(Intent.ACTION_BOOT_COMPLETED)) {
        Log.d("receiver","action is: boot");
    }
    if(action1.equals("android.intent.action.PACKAGE_REPLACED")) {
        Log.d("receiver","action is: package");
    }
}

Cuando ejecuto la aplicación el receptor atrapa elandroid.intent.action.PACKAGE_REPLACED pero cuando reinicio el teléfono el receptor no atrapa elBOOT_COMPLETED.
Sin embargo cuando comento en el.OtherReceiver en elMainfest archívalo puedes atraparlo!
Aquí está el código de esta clase:

public class OtherReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context arg0, Intent arg1) {

    String action = arg1.getAction();

    if(action.equals(Intent.ACTION_BOOT_COMPLETED)) {
        Log.d("new receiver","action is: boot");
    }

}   
}

igual que el otro. Así que mi pregunta es por qué necesito definir un receptor separado para elBOOT_COMPLETED ¿acción?
Editar: También traté de enviar la acción a través deadb de acuerdo aesta, y sin ningún permiso pude atraparlo con elAppReceiver clase:

am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n com.blubuk/.AppReciever

Respuestas a la pregunta(2)

Su respuesta a la pregunta