In[]:=
Internal`InheritedBlock[{Solve},Unprotect[Solve];Solve[eq_,v_,opts___]/;!TrueQ[$in]:=Block[{$in=True},Solve[eq,v,MethodAutomatic,opts]];Protect[Solve];sol=DSolve[{Ald'[t]-kzeroAld[t]Hydr[t],Hydr'[t]-kzeroAld[t]Hydr[t],Prod'[t]kzeroAld[t]Hydr[t],Prod[0]==0},{Ald[t],Hydr[t],Prod[t]},t]]
Out[]=
Hydr[t]-,Ald[t]-,Prod[t](-1+)
kzerot
1
1
-+
kzerot
1
1
2
1
2
1
-+
kzerot
1
1
2
1
2
kzerot
1
1
(-1+)(-+)
1
2
kzerot
1
1
2