He estado intentando hacer funcionar el Camera.apk de Froyo Ultimate que tú dices, y tristemente tienes razón, no tira ni a patadas, pero he aquí la razón técnica (esto es lo que aparece por logcat al intentar acceder a Camera):
Código:
I/ActivityManager( 231): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.camera/.Camera bnds=[12,82][126,211] }
I/ActivityManager( 231): Start proc com.android.camera for activity com.android.camera/.Camera: pid=13955 uid=10007 gids={1006, 1015}
I/WindowManager( 231): Setting rotation to 1, animFlags=1
I/ActivityManager( 231): Config changed: { scale=1.0 imsi=214/1 loc=es touch=3 keys=1/1/2 nav=3/1 orien=2 layout=34 uiMode=17 seq=96}
I/dalvikvm(13955): Could not find method android.hardware.CameraSwitch.hasCameraSwitch, referenced from method com.android.camera.Camera.addBaseMenuItems
W/dalvikvm(13955): VFY: unable to resolve static method 224: Landroid/hardware/CameraSwitch;.hasCameraSwitch ()Z
D/dalvikvm(13955): VFY: replacing opcode 0x71 at 0x000a
D/dalvikvm(13955): VFY: dead code 0x000d-0036 in Lcom/android/camera/Camera;.addBaseMenuItems (Landroid/view/Menu;)V
I/dalvikvm(13955): Could not find method android.hardware.Camera$Parameters.getSupportedIsoValues, referenced from method com.android.camera.Camera.updateCameraParametersPreference
W/dalvikvm(13955): VFY: unable to resolve virtual method 170: Landroid/hardware/Camera$Parameters;.getSupportedIsoValues ()Ljava/util/List;
D/dalvikvm(13955): VFY: replacing opcode 0x74 at 0x0146
D/dalvikvm(13955): VFY: dead code 0x0149-02c0 in Lcom/android/camera/Camera;.updateCameraParametersPreference ()V
D/dalvikvm(13955): VFY: dead code 0x02fc-0363 in Lcom/android/camera/Camera;.updateCameraParametersPreference ()V
I/dalvikvm(13955): Could not find method android.media.MediaRecorder.setCameraParameters, referenced from method com.android.camera.BaseCamera.setCameraParameters
W/dalvikvm(13955): VFY: unable to resolve virtual method 252: Landroid/media/MediaRecorder;.setCameraParameters (Ljava/lang/String;)V
D/dalvikvm(13955): VFY: replacing opcode 0x6e at 0x0014
D/dalvikvm(13955): VFY: dead code 0x0017-0017 in Lcom/android/camera/BaseCamera;.setCameraParameters ()V
I/dalvikvm(13955): Could not find method android.hardware.Camera$Parameters.getMaxSharpness, referenced from method com.android.camera.BaseCamera.setCommonParameters
W/dalvikvm(13955): VFY: unable to resolve virtual method 159: Landroid/hardware/Camera$Parameters;.getMaxSharpness ()I
D/dalvikvm(13955): VFY: replacing opcode 0x6e at 0x0022
D/dalvikvm(13955): VFY: dead code 0x0025-013c in Lcom/android/camera/BaseCamera;.setCommonParameters ()V
I/dalvikvm(13955): Could not find method android.hardware.Camera.open, referenced from method com.android.camera.CameraHolder.open
W/dalvikvm(13955): VFY: unable to resolve static method 211: Landroid/hardware/Camera;.open (Ljava/lang/String;)Landroid/hardware/Camera;
D/dalvikvm(13955): VFY: replacing opcode 0x71 at 0x0020
D/dalvikvm(13955): VFY: dead code 0x0023-0030 in Lcom/android/camera/CameraHolder;.open ()Landroid/hardware/Camera;
W/dalvikvm(13955): threadid=8: thread exiting with uncaught exception (group=0x4001d7e8)
E/AndroidRuntime(13955): FATAL EXCEPTION: Thread-9
E/AndroidRuntime(13955): java.lang.NoSuchMethodError: android.hardware.Camera.open
E/AndroidRuntime(13955): at com.android.camera.CameraHolder.open(CameraHolder.java:106)
E/AndroidRuntime(13955): at com.android.camera.Camera.ensureCameraDevice(Camera.java:1458)
E/AndroidRuntime(13955): at com.android.camera.Camera.access$4500(Camera.java:92)
E/AndroidRuntime(13955): at com.android.camera.Camera$5.run(Camera.java:823)
E/AndroidRuntime(13955): at java.lang.Thread.run(Thread.java:1096)
W/ActivityManager( 231): Force finishing activity com.android.camera/.Camera
I/WindowManager( 231): Setting rotation to 0, animFlags=1
I/ActivityManager( 231): Config changed: { scale=1.0 imsi=214/1 loc=es touch=3 keys=1/1/2 nav=3/1 orien=1 layout=34 uiMode=17 seq=97}
I/dalvikvm(13955): Could not find method android.hardware.Camera$Parameters.getSupportedIsoValues, referenced from method com.android.camera.CameraSettings.initPreference
W/dalvikvm(13955): VFY: unable to resolve virtual method 170: Landroid/hardware/Camera$Parameters;.getSupportedIsoValues ()Ljava/util/List;
D/dalvikvm(13955): VFY: replacing opcode 0x74 at 0x02da
I/dalvikvm(13955): Could not find method android.hardware.Camera$Parameters.getSupportedLensShadeModes, referenced from method com.android.camera.CameraSettings.initPreference
W/dalvikvm(13955): VFY: unable to resolve virtual method 171: Landroid/hardware/Camera$Parameters;.getSupportedLensShadeModes ()Ljava/util/List;
D/dalvikvm(13955): VFY: replacing opcode 0x74 at 0x02f0
I/dalvikvm(13955): Could not find method android.hardware.Camera$Parameters.getSupportedAutoexposure, referenced from method com.android.camera.CameraSettings.initPreference
W/dalvikvm(13955): VFY: unable to resolve virtual method 166: Landroid/hardware/Camera$Parameters;.getSupportedAutoexposure ()Ljava/util/List;
D/dalvikvm(13955): VFY: replacing opcode 0x74 at 0x031d
D/dalvikvm(13955): VFY: dead code 0x02dd-02e7 in Lcom/android/camera/CameraSettings;.initPreference (Lcom/android/camera/PreferenceGroup;)V
D/dalvikvm(13955): VFY: dead code 0x02f3-02fe in Lcom/android/camera/CameraSettings;.initPreference (Lcom/android/camera/PreferenceGroup;)V
D/dalvikvm(13955): VFY: dead code 0x0320-032a in Lcom/android/camera/CameraSettings;.initPreference (Lcom/android/camera/PreferenceGroup;)V
W/ActivityManager( 231): Activity pause timeout for HistoryRecord{463b4468 com.android.camera/.Camera}
D/dalvikvm( 231): GC_EXPLICIT freed 4434 objects / 226064 bytes in 162ms
W/ActivityManager( 231): Activity destroy timeout for HistoryRecord{463b4468 com.android.camera/.Camera}
I/Process (13955): Sending signal. PID: 13955 SIG: 9
W/InputManagerService( 231): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@467242b0
I/ActivityManager( 231): Process com.android.camera (pid 13955) has died.
I/ActivityManager( 231): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.camera/.Camera bnds=[12,82][126,211] }
I/ActivityManager( 231): Start proc com.android.camera for activity com.android.camera/.Camera: pid=13965 uid=10007 gids={1006, 1015}
I/WindowManager( 231): Setting rotation to 1, animFlags=1
I/ActivityManager( 231): Config changed: { scale=1.0 imsi=214/1 loc=es touch=3 keys=1/1/2 nav=3/1 orien=2 layout=34 uiMode=17 seq=98}
D/dalvikvm( 320): GC_FOR_MALLOC freed 9396 objects / 490440 bytes in 43ms
I/dalvikvm(13965): Could not find method android.hardware.CameraSwitch.hasCameraSwitch, referenced from method com.android.camera.Camera.addBaseMenuItems
W/dalvikvm(13965): VFY: unable to resolve static method 224: Landroid/hardware/CameraSwitch;.hasCameraSwitch ()Z
D/dalvikvm(13965): VFY: replacing opcode 0x71 at 0x000a
D/dalvikvm(13965): VFY: dead code 0x000d-0036 in Lcom/android/camera/Camera;.addBaseMenuItems (Landroid/view/Menu;)V
I/dalvikvm(13965): Could not find method android.hardware.Camera$Parameters.getSupportedIsoValues, referenced from method com.android.camera.Camera.up
dateCameraParametersPreference
W/dalvikvm(13965): VFY: unable to resolve virtual method 170: Landroid/hardware/Camera$Parameters;.getSupportedIsoValues ()Ljava/util/List;
D/dalvikvm(13965): VFY: replacing opcode 0x74 at 0x0146
D/dalvikvm(13965): VFY: dead code 0x0149-02c0 in Lcom/android/camera/Camera;.updateCameraParametersPreference ()V
D/dalvikvm(13965): VFY: dead code 0x02fc-0363 in Lcom/android/camera/Camera;.updateCameraParametersPreference ()V
I/dalvikvm(13965): Could not find method android.media.MediaRecorder.setCameraParameters, referenced from method com.android.camera.BaseCamera.setCameraParameters
W/dalvikvm(13965): VFY: unable to resolve virtual method 252: Landroid/media/MediaRecorder;.setCameraParameters (Ljava/lang/String;)V
D/dalvikvm(13965): VFY: replacing opcode 0x6e at 0x0014
D/dalvikvm(13965): VFY: dead code 0x0017-0017 in Lcom/android/camera/BaseCamera;.setCameraParameters ()V
I/dalvikvm(13965): Could not find method android.hardware.Camera$Parameters.getMaxSharpness, referenced from method com.android.camera.BaseCamera.setCommonParameters
W/dalvikvm(13965): VFY: unable to resolve virtual method 159: Landroid/hardware/Camera$Parameters;.getMaxSharpness ()I
D/dalvikvm(13965): VFY: replacing opcode 0x6e at 0x0022
D/dalvikvm(13965): VFY: dead code 0x0025-013c in Lcom/android/camera/BaseCamera;.setCommonParameters ()V
I/dalvikvm(13965): Could not find method android.hardware.Camera.open, referenced from method com.android.camera.CameraHolder.open
W/dalvikvm(13965): VFY: unable to resolve static method 211: Landroid/hardware/Camera;.open (Ljava/lang/String;)Landroid/hardware/Camera;
D/dalvikvm(13965): VFY: replacing opcode 0x71 at 0x0020
D/dalvikvm(13965): VFY: dead code 0x0023-0030 in Lcom/android/camera/CameraHolder;.open ()Landroid/hardware/Camera;
W/dalvikvm(13965): threadid=8: thread exiting with uncaught exception (group=0x4001d7e8)
E/AndroidRuntime(13965): FATAL EXCEPTION: Thread-9
E/AndroidRuntime(13965): java.lang.NoSuchMethodError: android.hardware.Camera.open
E/AndroidRuntime(13965): at com.android.camera.CameraHolder.open(CameraHolder.java:106)
E/AndroidRuntime(13965): at com.android.camera.Camera.ensureCameraDevice(Camera.java:1458)
E/AndroidRuntime(13965): at com.android.camera.Camera.access$4500(Camera.java:92)
E/AndroidRuntime(13965): at com.android.camera.Camera$5.run(Camera.java:823)
E/AndroidRuntime(13965): at java.lang.Thread.run(Thread.java:1096)
W/ActivityManager( 231): Force finishing activity com.android.camera/.Camera
I/WindowManager( 231): Setting rotation to 0, animFlags=1
I/dalvikvm(13965): Could not find method android.hardware.Camera$Parameters.getSupportedIsoValues, referenced from method com.android.camera.CameraSettings.initPreference
W/dalvikvm(13965): VFY: unable to resolve virtual method 170: Landroid/hardware/Camera$Parameters;.getSupportedIsoValues ()Ljava/util/List;
D/dalvikvm(13965): VFY: replacing opcode 0x74 at 0x02da
I/dalvikvm(13965): Could not find method android.hardware.Camera$Parameters.getSupportedLensShadeModes, referenced from method com.android.camera.CameraSettings.initPreference
W/dalvikvm(13965): VFY: unable to resolve virtual method 171: Landroid/hardware/Camera$Parameters;.getSupportedLensShadeModes ()Ljava/util/List;
D/dalvikvm(13965): VFY: replacing opcode 0x74 at 0x02f0
I/dalvikvm(13965): Could not find method android.hardware.Camera$Parameters.getSupportedAutoexposure, referenced from method com.android.camera.CameraSettings.initPreference
W/dalvikvm(13965): VFY: unable to resolve virtual method 166: Landroid/hardware/Camera$Parameters;.getSupportedAutoexposure ()Ljava/util/List;
D/dalvikvm(13965): VFY: replacing opcode 0x74 at 0x031d
D/dalvikvm(13965): VFY: dead code 0x02dd-02e7 in Lcom/android/camera/CameraSettings;.initPreference (Lcom/android/camera/PreferenceGroup;)V
D/dalvikvm(13965): VFY: dead code 0x02f3-02fe in Lcom/android/camera/CameraSettings;.initPreference (Lcom/android/camera/PreferenceGroup;)V
D/dalvikvm(13965): VFY: dead code 0x0320-032a in Lcom/android/camera/CameraSettings;.initPreference (Lcom/android/camera/PreferenceGroup;)V
I/ActivityManager( 231): Config changed: { scale=1.0 imsi=214/1 loc=es touch=3 keys=1/1/2 nav=3/1 orien=1 layout=34 uiMode=17 seq=99}
W/ActivityManager( 231): Activity pause timeout for HistoryRecord{46486fc0 com.android.camera/.Camera}
D/dalvikvm( 231): GC_EXPLICIT freed 2844 objects / 143872 bytes in 161ms
W/ActivityManager( 231): Activity destroy timeout for HistoryRecord{46486fc0 com.android.camera/.Camera}
De lo que deduzco que el problema no reside en las librerías ya compiladas (he probado las relacionadas con la cámara de Froyo Ultimate y aún así no va), sino en el fichero
Camera.java del código fuente de Froyo. Por lo que, me parece, que el único modo de hacer funcionar esa aplicación sería recompilar de cabo a rabo toda la ROM, con cuidado de que no pete nada y de que estén todos los métodos presentes para su correcta ejecución, cosa bastante más complicada de hacer que mover archivos de una ROM a otra.
Así que si alguien con más conocimiento y experiencia con Android y Java se anima, bienvenida sea su aportación.
Por último, me alegra comunicarte que he encontrado un atajo para silenciar el teléfono desde la pantalla de bloqueo. Consiste en desbloquear la pantalla con ENCENDIDO, y después presionar simultáneamente VOLUMEN ABAJO + ENCENDIDO durante 1 a 2 segundos hasta que aparezca el menú desplegable del botón ENCENDIDO. Para volver a poner el sonido bastaría con hacer lo mismo con VOLUMEN ARRIBA + ENCENDIDO. No es que sea una solución muy elegante, probablemente no te saldrá a la primera y cuesta saber si se ha silenciado o no correctamente, pero ya es algo.
Otra manera menos liosa y tanto o más discreta de hacerlo es presionar ENCENDIDO durante 2 segundos y directamente elegir "Modo Silencio". Al menos haciéndolo de este modo se ve reflejado en la barra del sistema.
Saludos.

