我找不到MSI格式规范.它说它是一个开放的标准,但我没有看到任何文档 - 只是在这里和那里的点点滴滴.
我想修改一些.msi安装程序,但我想先了解它在做什么.
可能重复:
使用Java生成证书,公钥和私钥
我需要在运行时生成自签名证书,签名并导入Java密钥库.我可以通过命令行中的"keytool"和"openssl"以下列方式执行此操作:
keytool -import -alias root -keystore keystore.txt -file cacert.pem
keytool -genkey -keyalg RSA -keysize 1024 -alias www.cia.gov -keystore keystore.txt
keytool -keystore keystore.txt -certreq -alias www.cia.gov -file req.pem
openssl x509 -req -days 3650 -in req.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial -out reqsigned.pem
keytool -import -alias www.cia.gov -keystore keystore.txt -trustcacerts -file reqsigned.pem
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用keytool和openssl二进制文件发送我的应用程序并从Java执行上述命令,但我正在寻找一种更清晰的方法,这将允许我使用纯Java完成上述所有操作.
我可以使用的任何库?
根据ARM手册,应该可以访问特定CPU模式的分组寄存器,例如"r13_svc".当我尝试这样做时,gcc对我大吼大叫,出现以下错误:
立即表达需要#前缀 - "mov r2,sp_svc"
怎么了?
更新.ARMv5和ARMv6的ARM体系结构参考手册中的以下文本让我相信它是可能的,第A2.4.2节:
寄存器R13和R14各有6个存储物理寄存器.一个用于用户和系统模式,其余五个中的每一个用于五种异常模式之一.如果需要具体说明所引用的版本,则使用以下形式的名称:R13_mode R14_mode其中mode是usr,svc(对于Supervisor模式),abt,und,irq和fiq中的适当的一个.
我有一个使用Izpack用Java编写的安装程序.它在Windows XP上运行正常,但在Windows 7上它无法写入c:\ Program Files.奇怪的是,作为运行此安装程序的用户,我可以在c:\ program files下创建文件夹,但不能从安装程序本身创建.
我错过了什么?
我有一个内核补丁,用于稍微不同的内核版本,然后是我试图修补的内核版本.不用说,补丁部分失败.我当然可以手动修复它,但我想知道可能有一个图形补丁实用程序可用于解决冲突.
我读了很多新闻稿声称Apple会在iOS上提供Siri的API,但是现在Siri已经发布了,我在developer.apple.com上找不到任何关于这个API的文档.
我正在寻找一种方法来拦截和重定向读取到某些注册表项.当然,Detours可以做到这一点.但我需要它用于商业应用,而MS $ 10K的许可证费用有点过于陡峭.还有其他选择吗?
有没有一种简单的方法来挂钩我的代码执行的进程的注册表访问?我知道SetWindowsHookEx和朋友,但它太复杂了......我仍然希望有一种像LD_PRELOAD上一样简单的方法Unix......
所以,我有一个应用程序,当连接到汽车的HFP时,需要使用汽车的麦克风.它在没有BT的情况下工作正常,它可以与BT耳机一起使用,但不适用于HFP - 当它连接到我的汽车的BT时它使用HFP扬声器但不使用麦克风.
我究竟做错了什么?这是Android的bug吗?
private static boolean isBluetoothHeadsetConnected() {
BluetoothAdapter mBluetoothAdapter =
BluetoothAdapter.getDefaultAdapter();
return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()
&&
mBluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) ==
BluetoothHeadset.STATE_CONNECTED;
}
private boolean checkBlueTooth() {
if (!isBluetoothHeadsetConnected()) {
return false;
}
return true;
}
private void useBluetooth() {
AudioManager audioManager;
audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.startBluetoothSco();
audioManager.setBluetoothScoOn(true);
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (checkBlueTooth()) {
start();
} else {
BroadcastReceiver scoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if …Run Code Online (Sandbox Code Playgroud) android bluetooth audio-recording android-audiomanager android-bluetooth
我一直在使用以下代码来检测浏览器客户端区域的宽度,并且它在所有浏览器(包括FF,Safari和IE的各种版本)中都被100%唤醒。但是,现在当我切换到宽屏分辨率(1280x800)的新显示器时,此代码在IE8上失败。它报告clientwidth为1024 !!! ???
任何想法如何获得正确的客户区宽度?
function getClientWidth() {
var v=0,d=document,w=window;
if((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientWidth)
{v=d.documentElement.clientWidth;}
else if(d.body && d.body.clientWidth)
{v=d.body.clientWidth;}
else if(xDef(w.innerWidth,w.innerHeight,d.height)) {
v=w.innerWidth;
if(d.height>w.innerHeight) v-=16;
}
return v;
}
Run Code Online (Sandbox Code Playgroud)