Problems with additve shader on mobile.

Been working on shaders for mobile and have gotten a few alpha and multiplicative shaders working, but this additve shader always fails when i test it on my nexus7, even know it works with the opengl es 2 emulation

Shader "DragonHill/Mobile/PowerUpShader" {
    Properties {
        _Color("Color", Color) = (0, 0, 1, 1)
        _Intensity("Intensity", Float) = 1
        _RimPower("Rim Power", Range(0.5, 8.0)) = 2.0
    }
    SubShader {
        Tags {"Queue"="Transparent" "RenderType" = "Transparent" "IgnoreProjector"="True" "Bent"="Bent"}
        LOD 200
        ZWrite Off
        ColorMask RGB
        Blend  SrcAlpha One
        Lighting Off
        Pass {
        Tags { "LightMode" = "ForwardBase" }
            CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
                #include "UnityCG.cginc"
                #pragma target 2.0
         
                struct v2f {
                    float4 pos : SV_POSITION;
                    float3 viewdir : TEXCOORD0;
                    float3 norm : TEXCOORD1;
                };
         
                fixed4 _Color;
                float _RimPower = 5;
                float _Intensity;

                float _XTransform;
                float _YTransform;

                v2f vert(appdata_full v)
                {
                    v2f o;
                    float4 vv = mul(_Object2World, v.vertex);
                    vv.xyz -= _WorldSpaceCameraPos.xyz;
                    vv = float4((vv.z * vv.z) * 0.00005 * _XTransform, (vv.z * vv.z) * 0.00005f * _YTransform, 0.0f, 0.0f);
                    v.vertex += mul(_World2Object, vv);
                    o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
                    o.norm = v.normal;
                    o.viewdir = ObjSpaceViewDir( v.vertex );
                    return o;
                }
         
                float4 frag(v2f IN) : COLOR
                {
                    half rim = 1 - saturate(dot(normalize(IN.viewdir), IN.norm));
                    rim = pow(rim, _RimPower);
                    _Color = _Color * _Intensity * rim;
                    return _Color;
                }
            ENDCG
        }
    }
    FallBack "Diffuse"
}

Ya one have similar issues, or does anyone know a way around this.
It seems to just fall back to the fallback shader everytime i run on mobile

The shader state settings should go in the Pass block instead of the SubShader block. So, these:

ZWrite Off
ColorMask RGB
Blend  SrcAlpha One
Lighting Off

ya didnt help, the problem seems to be related to my fresnel im calculating, but it dosnt seem to matter if im doing my

half rim = 1 - saturate(dot(normalize(IN.viewdir), IN.norm));

in the vertex program or the fragmeant, the shader still dosnt not work on mobile.