タブレットフォンの先駆け? Docomo Galaxy SC-02D 、7inchでGパンの後ろポケットなら収まるサイズ。処理能力面では現在はとても苦しいですが少しだけUPDATEすることが可能です。
執筆中
HowTo 備忘 アイデア 活動などを書いてます
タブレットフォンの先駆け? Docomo Galaxy SC-02D 、7inchでGパンの後ろポケットなら収まるサイズ。処理能力面では現在はとても苦しいですが少しだけUPDATEすることが可能です。
執筆中
音楽再生専用にほどよい4inchディスプレイのXperia E1。Walkmanボタンで画面さわらずとも再生とポーズができます。FMラジオ、大型スピーカ、SIMスロット2。自動車整備中でイヤフォンが使えないとき、ツナギのぽっけに入れて音楽再生にちょうど良いです。
標準OSはAndroid4.1.2。色々なOSが出ています。Walkmanボタンが使えるカスタムOSを模索中です。試したOSと結果のメモです。
基本セットアップ
①Bootloader unlock 解除コードの入手 → ②Bootloader unlock → ③customリカバリ書込み → ④OS 書込みと他の基本手順はXperiaと同様です。 ③の内容が少し違いました。recovery領域にcustomリカバリ書込みはエラーとなり、boot領域に書込むと上手く起動します。
そうすると常時TWRPが起動するようになってしまいますが、OSを書くと上手くなくなってしまうので問題になかったです。なお端末のコードネームは、最初 falconss だったが途中から Shuangになったので、その両方でキーワードで情報を探す必要があるようです。
lineage-13.0-20170319-UNOFFICIAL-falconss.zip
lineage-14.1-20170627-UNOFFICIAL-shuang.zip
Viper-shuang-7.1.2-Naja-v1.1-20170605-UNOFFICIAL.zip
cm-12.1-20170320-UNOFFICIAL-falconss.zip
TeslaOS-2.0.RC3-flamingo.zip
各OSも一長一短があるようです。結果を下表にまとめます。
OS | 重さ | Gapp相性 | walkman ボタン | ラジオ | カメラ | WEB 閲覧 |
lineage-13.0 | 〇 | 〇 | × | ×× | ×× | × |
lineage-14.1 | △ | ×× | × | × | △ | 〇 |
Viper | 〇△ | × | × | × | ×× | 〇 |
warkmanアプリの動作
本端末では、Walkmanボタン が重要です。各種バージョンを試してみました。以下その結果です。なお、wmaファイルの再生可否はOSの実験結果から、アプリ依存ではなくOS依存の模様です。
バージョン | インストール | Walkmanボタン |
8.4.1.5 (E1オリジナル収録Ver.) | × | × |
8.4.1.4 | 〇 | × |
7.15.A.0 | 〇 | × |
8.1.A.0.5 | 〇 | × |
8.4.A.3.5 | × | × |
8.5.A.3.3 | × | × |
E1オリジナル 8.4.1.5はオリジナルROM: Sony_Xperia_E1_Dual_D2105_20.1.B.0.64_RU から取出しものですが解せない結果です。何か深い秘密があるのでしょうか?
オリジナルROMにもどし方
冷静さをとり戻すため一旦オリジナルに戻します。VolumeDown押しながらUSBケーブルを差し、Flashモードに遷移させた後、Flashtool で Sony_Xperia_E1_Dual_D2105_20.1.B.0.64_RU を書きます。以下手順です。
以上、悔しい状況です。引き続き調査を継続します。
前記事では、RH850/F1KHの開発環境を用意しました。e2studioの環境をお出かけ用事務用PCにも作りたい。むろんコード作成/閲覧とC言語記述のチェック用としてです。e2studioはマシンパワーを食うし、コンパイラライセンスやバージョン互換の課題もあり、なかなかツライ。ベースは eclipce だから素のeclipceでも動くはず。そこで試してみました。
eclipce の用意
弊方では開発PCに 2019-12 を CDT(C/C++ Developer Tool )を追加して使っています。IDE機能のしょぼいHIWのバックアップにも有効です。eclipceは Windows OS環境への登録的なものが無くても動くのでいつもpleiadesフォルダを移行先PCに丸コピしています。新規の方は、公式サイトからダウンロードすればよいでしょう。
e2studioのproject コピー
e2studioのproject を移行先PCに丸コピーして、eclipce CDT のワークスペースに追加します。
これで普通にコード閲覧できるようになりました。#define値内容などホバーによる参照をするには、プロジェクト -> プロパティ -> C/C++一般 -> パスおよびシンボル からIncludeパスを追加します。
Cコンパイラの追加
eclipce CDT ではデフォルトでgccが選択されていますが、gcc本体は入っていません。MinGwのgccを入れます。Cygwin経由だとCygwinを起動して経由させる必要があり、gccソースからvisual StudioでBuildするのもしんどいですし可能かナゾです。ぱっとWindows 64bit用の配布場所に辿りつけません。以下の場所から以下のfileをdownloadします。
解凍して分かりやすい場所( Program Files以外 )に置きます。
gcc に必要なライブラリ2つとmake も必要なので、その3つを GnuWin32 Project からdownloadして解凍して分かりやすい場所に置きます。
gcc、make、ライブラリ2つのパスを、WindowsのPATH環境変数に追加します。
eclipce CDT設定変更
eclipce CDT のプロジェクト -> プロパティ を以下のように設定します。面倒なので HardwareDebug構成 を上書きしています。
お試しBuild
これで一応、クロスBuildできるようになりました。これである程度フラグ消し( H用語でコンパイルエラーを消すこと )までができるようになりました。
しかし組込み特有の絶対アドレスからキャストして実体参照など、OSありCでは際どいコードは通らないようなので、オプションの見直しが色々必要そうです。今更ながら、gcc RL78を使ったほうがよいかも、、、(でもそれじゃ面白くない)
e-Taxディスクトップ版で、署名時にマイナンバーカードを認識しなくなりました。
カード自体は認識しているし、3か月前はエラーは出ていませんでした。
JPKI利用者ソフトはインストールずみです。バージョン3.4です。
JPKI利用者ソフトのサイトを見ると、バージョン3.5にUPされているようです。これかな?
ダウンロードしてインストールします。「バージョンUPしますか?」ではなく「上書きしますか?」と微妙なニュアンスのメッセージが出ます。「はい」ですすめます。
3.5にアップデートされました。
再度、e-Taxに戻り、署名を行うと、、、カードが認識されパスワード入力に進みました。
以上のように JPKI利用者ソフト が最新でなかったためエラーとなっていました。
e-Taxディスクトップ版は起動時に最新バージョンか自動チェックしますが、 JPKI利用者ソフト はチェックしないようです。
Visual Studio 2022 にて、Xamarin、MAUIではなく、iOSアプリケーションというProject項目があったので試してみました。たとえSwiftでもWindows上から開発できれば効率UPします。
まずプロジェクトを追加してみます。
ちなみにiOSライブラリをXamarinでつかえるように調査時に登場したキーワード iOSバインドライブラリ は2つでてきますね。
スケルトンができたので、何か追加してみます。
言語はC#になるようですね。
そのままBuildしてみると、、、
.net 8 (7?)が無いらしく、それを追加インストールしてBuild。
よく分かりませんが以下のようなキャプチャも記録していました。
結局以下のエラーでふんずまってしまったようです。
結局、よくわかりませんでした。
前記事では、Visual Studio Setup Project で基本的なインストーラ作成手順をまとめました。本記事ではオプション的な設定方法を記述していきます。
バーナーの追加
吊るしの状態では殺風景ですし、サプライヤとしてアピール不足です。以下のようにインストーラ画面にバーナーを追加が可能です。
(1) 左図アイコンを開きます。
(2) 各インストーラ画面のプロ
パティから左図のようせ選択
します。
(3) 画像を追加します。インストーラー実行時に展
開されていたような覚えがありますので、
Application Folder を選択しておいた方がよいでし
ょう。.png や .gif など透過性は使えないようです。
全インストーラ画面でこの設定を行います。
画像は 約720 x 120 pixel で作成します。
レジストリエントリ
Windows Installer ではインストール後、Windowsレジストリにエントリが作成されます。以下のように必要に応じてカスタマイズ、追加が可能です。
(1) 左のアイコンを選択します。
(2) デフォルトで、サプライヤ名のエントリが作成されます。これはプロジェクトのプロパティの
Manufacturer の設定値です。AlwaysCreate は基本 ture に変えます。
(3) 一般的にサプライヤ名の下に
プロダクト名のキーを作りま
す。InstallShieldなどは自動作成
します。こちらは手動作成が必
要です。[ProductName]は
Windows Installerの予約変数で、
プロジェクトのプロパティの
ProductName の設定値です。
(4) インストールされたディレクトリをレジストリに追加しておくとアプリ側で色々と活用できます。その場合は以下のように操作します。[TARGETDIR] は Windows Installer の予約変数でユーザが指定したインストール先を示します。
(5) インストールされたバージョンもレジストリに追加しておくとアプリ側で色々と活用できます。その場合は以下のように操作します。[ProductVersion] は は Windows Installer の予約変数でプロジェクトのプロパティの ProductVersionの設定値です。将来のUpdate時に、過去にインストールされたバージョンが分かるとデータの移行判定などに活用できます。
(6) インストール後のレジストリ内容は以下のようになります。これでInstallShieldと同等のレジストリエントリとなります。
バージョン表示
ユーザが誤ったバージョンのインストールを防止したり、トラブルシューティング用にインストーラバージョンはどこかに表示しておきたいものです。以下のようにインストーラ画面の文言の変更が可能です。
(1) 左図アイコンを開きます。
(2) [ようこそ] 画面の WelcomTextを変更します。”Adminstrative install“の方も直しておきます。
(3) 変更値のサンプルは以下のとおりです。[ProductVersion] は は Windows Installer の予約変数でプロジェクトのプロパティの ProductVersionの設定値です。プロジェクトのプロパティ Localization が Japanease でもデフォルト値は英語ですが、変更する場合は日本語を指定しないといけません。
この度は本製品をお買い上げいただきありがとうこざいます。 [ProductName] ver.[ProductVersion]のインストールを継続するには、”次へ(N)>”をクリックします。
ライセンス文の追加
(1) User Interface のタブから以下のように追加します。
(2) ライセンス文を .rtf 形式で指定します。
カスタムアクション呼出し
Custom Actionのタブに追加します。インストールとパラレルでVBScript呼出すことは可能でした。しかしVC++ 2005ランタイムがインストールされているかチェックしたかったのですが、VBScript では厳しいようです。InstallShieldのカスタムアクションDLLや専用スクリプトには及ばないようです。
.exeのアクションも試したようでしたが結果は忘れてしまいました。あまり有効ではなかったのでしょう。。。
英語インストーラ
日本語版と英語版の2つをリリースすることはよくあることかと思います。日本語版から英語版を作る手順は以下のとおりです。InstallShieldなどは、一つのインストーラ定義から多国語のインストーラを生成できますが、こちらはそこまで対応してないようです。
(1) Visual Studio Setup Project のソリューションに、英語のSetup Projectを追加します。
(2) 日本語Projectの各種設定を、英語Project に転記します。Projectファイルをコピーして直接エディタで修正するのでもよいかと。
(3) 英語Project のプロパティLocalization を English に変更します。
(4) 日本語版と英語版を同じプロダクトとして扱いたいなら、ProductCode、UpgeadeCode はも合わせておいた方がいいでしょう。(未だ未トライです)
(5) 全体構成は以下のような感じです。
以上、Visual Studio Setup Project である程度実用的なインストーラは作れました。しかし開発環境が用意できない、手がたりない、自身がない、担当者がいなくなったなどお困りの方は、こちらよりご相談ください。
Visual Studio Setup Project によるインストーラ作成手順の覚え書きです。高価なインストーラビルダーを導入しなくても、シンプルなアプリなら対話的に作成がです。難解な Windows Installer のAPIを使いプログラミングしなくとも。Visual Studioのエディションは、Professional です。
Packageの追加
標準インストールでは入っていないのでPackageを追加します。
メニュー 機能拡張 -> 機能拡張の管理 を開き、Visual Studio Studio Installer Project を探し追加します。なお 2019 と 2022 で機能差は無かったです。
メニュー ツール -> ツールと機能の管理 からではないので注意です。ただ追加後、当メニューから追加済みの確認はできます。
Projectの作成
新しいプロジェクトの作成から、Setup Project を選び、以下のように操作します。
基本設定
(1) アプリfolderに配布する
exe、icon、その他
dll.ocx、設定ファイルなど
を右click menu”Add“で配
置します。
(2) プログラムメニューを
追加します。サプライヤ
名、プロダクト名が一般的です
(3) アプリexeのショートカ
ットを作成します。
(4) 上記(1)で配置したファイルの中
から選択します。
(5) ショートカット
名をプロダクト名
に変更します。
(6) アプリICONを指定しま
す。上記(1)で配置したファ
イルの中から選択します。
(7) プロジェクト設定を項目に従い入力しま
す。InstallAllUsesは基本tureです。PC全体に
一つインストールするという意味です。マルチ
ユーザインストールはアプリ構造も管理も面倒
になり、一般的につかいません。デフォルト
falseなので必ず変更します。
UpgradeCode は Update Installerを作るときの
一意の同一プロダクトを示すキーです。管理記
録しておく必要があります。
Vsesion は Update時には、大きい値でないといけないので、 その時を想定して付与し
ておく必要があります。メジャー. マイナー.リ
リース(Build番号) 形式のみ。数値以外はNGで
す。Manufacturer とProductNameはインスト
ールパス、レジストリキーにも影響するため弊
方では記号はさけるようにしています。
自動的に切替わったりはしないので
Localization はリリースする国に変更します。
(8) 左図アイコンを開きます。
(9) InstallAllUsesをtureでか
ら変更できないように、イ
ンストール時画面からその
選択を非表示にします。
(10) アプリのユーザ設定値ファイルなど、ア
ンインストール後も残すファイルは、
Permanent を True にしておきます。
Buildとデバッグ
「Debug」Buildは意味ないので「Release」Buildのみ使用します。setup.exe ( .msiのランチャー、OS毎の互換性を吸収するためだったと記憶) と .msi ( Microsoft Installer形式 : インストーラ本体) の2つが生成されます。本プロダクトでは、Install Shieldのように一つの Setup.exe にまとめることはできません。
デバックは通常のアプリとはことなり、メニュー プロジェクト -> インストール より行います。Install Shieldは実インストールされないですが、こちらはされてしまいます。
インストール時の基本的な画面の流れは以下のとおりです。
アンインストール時の流れは以下のとおりです。
以上、これで最低限のインストールが一応できます。しかし本当に使えるインストーラを作るには、以下のような追加設定等が必要です。 これらは Visual Studio Setup Project でもできます
ということでVisual Studio だけでインストーラは対話的に作れました。しかし開発環境が用意できない、手がたりない、自身がない、担当者がいなくなったなどお困りの方は、こちよりご相談ください。
Swiftでviewを非表示にして、アプリを常駐化したい。他記事にはストレートな答えがみつからなかったため、TRY&ERRした覚書きです。
試したこと1
.NET など同じセンスで書くと、、、 NGでした。
self.hidden() // 効かない、警告でる -> NG
試したこと2
Swift固有の命令をつかってみます、、、NGでした。
dismiss() // Loginにもどってしまう。-> NG
試したこと3 (成功)
iPhone / iPad の Home画面に戻します。なるほど...これならアプリを起動したままviewを非表示にできますね。発想を変える必要があったのですね。
// 結局のところ非表示にはできない。 Home画面に戻す -> OK
UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
サーバ屋さんが MQTT の ClientID を SHA256ハッシュにくわえ、Base64+URLセーフエンコード にしてくれと言われるので調べて対応した覚え書きです。単にユニーク値で記号を含まないなら、SHA256だけでもいいと思うのですが... こだわりか既存のサーバの作込みがそうなってるのかなと...
Swiftでも、SHA256ハッシュ、Base64 のAPIはありましたが、URLセーフエンコードはなく、これはロジックで組む必要がありました。またこの3段階変換を行い、デバッグ用に中間変換結果も確認しするには、少々オブジェクトの選択扱いがややこしいようでした。コードは以下のとおりです。
public func ConvertKey(
baesKey: String, // 変換対象のキー
) -> String
{
var ret: String = ""
//--- SHA256値をBase64にエンコードし、URL safeにする。---
let srcBin:Data? = baesKey.data(using: .utf8) // Binaly変換
let hashVal = SHA256.hash( data: srcBin! ) // SHA256ハッシュ (内部はByte配列)
let hashBin:Data? = Data( hashVal ) // Binaly変換
// 生成結果のDBG用の確認トレース
let hastStr = hashVal.compactMap { String(format: "%02x", $0) }.joined()
print( "HASH=" + hastStr + " len=" + String(hastStr.count) )
// URL64エンコード
if let stg1 = hashBin?.base64EncodedString() {
// Memo: Swiftには、URLセーフAPIはないため、ハンドコードで変換する。
let stg2 = stg1.replacingOccurrences(of: "=", with: "" )
let stg3 = stg2.replacingOccurrences(of: "+", with: "-")
ret = stg3.replacingOccurrences(of: "/", with: "_")
}
else {
print( "base64EncodedString() error.")
}
return ret
}
一旦、Binaly値に変換してあげるとスマートに収まりました。
WindowsのVS2022にて、xamarin project リリースアーカイブ時、App Store Connect API キー と アプリ固有パスワード なるものをもとれられるようになったときの対処メモです。詳しい操作はよくおぼえていません。
発端。MAC の VS2022はサポ切れになるとのことで、WindowsのVS2022に切替ようとApple Developer アカウントを追加しようとした時、入力を求められるようになりました。
Appleのヘルプをみると、App Store Connect API キー は、App Store Connect で発行する模様。少し説明に以下不備があるようです。
結局以下のことの模様です。
新規keyを発行します。
keyをDownloadします。
VS2022にimportします。
更に以下のダイアログが現れました。
以下のページで発行する模様。
キー発行のシーケンスは、
以上です。
なおデバック開始時に以下のエラーがでました。未調査です。